Caliburn.Micro中的ListPicker Message.Attach错误

时间:2011-05-16 15:26:02

标签: 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)]">
</toolkit:ListPicker>

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

我想要做的就是从ListPicker传递给我的VM,SelectedItem。 我做错了什么?

1 个答案:

答案 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,此问题已解决。