5

WP7 で次の XAML コードを使用しています。

<toolkit:ListPicker x:Name="ListPickerBwFactors" ItemsSource="{Binding BwFactors}" 
                            cal:Message.Attach="[Event SelectionChanged]=[Action ChangeBinarizeFactor(ListPickerBwFactors.ItemSelected)]">
</toolkit:ListPicker>

エラーが表示されます:ターゲットは FrameworkElement または CollectionViewSource である必要があります

私がやりたいことは、VM に ListPicker から SelectedItem を渡すことだけです。私は何を間違っていますか?

4

1 に答える 1

3

WP7 上の Silverlight の現在のバージョンは、Silverlight 3 に基づいています。主な制限の 1 つは、FrameworkElement または CollectionViewSource の依存関係プロパティにのみバインドできることでした (WPF の DependencyObject とは対照的に)。

このコードのエラーが表示される理由は、バックグラウンドで Message.Attach 添付依存関係プロパティが FrameworkElements ではない動作 (具体的には ActionMessage) を使用しているためです。

Caliburn は、ListPickerBwFactors.ItemSelected から ActionMessage のパラメーターへのバインディングを設定しようとして失敗しています。これは基本的に、Caliburn のパラメーターが現時点ではあまり使用されていないことを意味します。代わりに、SelectedItem を ViewModel のプロパティにバインドする必要があります。

明るい面としては、WP7 の「Mango」リリースでは、電話の Silverlight が 4 に更新され、この問題が解決されます。

于 2011-05-16T21:13:22.137 に答える