我在WP7上有以下XAML代码:
<toolkit:ListPicker x:Name="ListPickerBwFactors" ItemsSource="{Binding BwFactors}"
cal:Message.Attach="[Event SelectionChanged]=[Action ChangeBinarizeFactor(ListPickerBwFactors.ItemSelected)]">
</toolkit:ListPicker>
我收到错误:目标必须是FrameworkElement或CollectionViewSource
我想要做的就是从ListPicker传递给我的VM,SelectedItem。 我做错了什么?
答案 0 :(得分:3)
WP7上Silverlight的当前版本基于Silverlight 3,其中一个主要限制是您只能绑定到FrameworkElement或CollectionViewSource上的依赖项属性(而不是WPF中的DependencyObject)。 p>
您看到这段代码的错误的原因是,幕后Message.Attach附加的依赖项属性使用了不是FrameworkElements的Behaviors(特别是ActionMessage)。
Caliburn正在尝试将ListPickerBwFactors.ItemSelected的绑定设置为ActionMessage的参数并失败。它基本上意味着Caliburn中的参数目前使用不多。您需要将SelectedItem绑定到ViewModel上的属性。
从好的方面来看,WP7的“芒果”版本会将手机上的Silverlight更新为4,此问题已解决。