5

我在 WP7 上有以下 XAML 代码:

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

我收到错误消息:目标必须是 FrameworkElement 或 CollectionViewSource

我要做的就是将 ListPicker 中的 SelectedItem 传递给我的 VM。我究竟做错了什么 ?

4

1 回答 1

3

WP7 上的 Silverlight 的当前版本基于 Silverlight 3,主要限制之一是您只能绑定到 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 回答