Windows phone 7 Caliburn.Micro中的ListPicker消息。附加错误

Windows phone 7 Caliburn.Micro中的ListPicker消息。附加错误,windows-phone-7,caliburn.micro,listpicker,Windows Phone 7,Caliburn.micro,Listpicker,我在WP7上有以下XAML代码: <toolkit:ListPicker x:Name="ListPickerBwFactors" ItemsSource="{Binding BwFactors}" cal:Message.Attach="[Event SelectionChanged]=[Action ChangeBinarizeFactor(ListPickerBwFactors.ItemSelected)]"> <

我在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。
我做错了什么?

WP7上当前版本的Silverlight基于Silverlight 3,主要限制之一是只能绑定到FrameworkElement或CollectionViewSource上的依赖项属性(而不是WPF中的DependencyObject)

您看到这段代码出现错误的原因是Message.Attach attached dependency属性在幕后使用了非框架元素的行为(特别是ActionMessage)

Caliburn正在尝试设置从ListPickerBwFactors.ItemSelected到ActionMessage参数的绑定,但失败。这基本上意味着Caliburn中的参数目前没有多大用处。您需要将SelectedItem绑定到ViewModel上的属性


好的一面是,WP7的“Mango”版本将手机上的Silverlight更新为4,解决了这个问题。

我明白了。所以基本上,我只需要使用数据绑定,但我失去了所有Caliburn消息传递架构。谢谢不是所有的,你仍然可以使用约定来连接到动作,只是这些动作目前不能有参数。我相信您可以创建一些约定来绑定ListPicker的SelectedItem