我有一个Listbox,其ItemsSource属性数据绑定到一个对象集合。集合中的每个对象都有一个Enabled
属性,我想将它们绑定到各自的ListboxItem。我试过这种方法:
<ListBox ItemsSource="{Binding MyList}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsEnabled" Value="{Binding Enabled}" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
这导致AG_E_RUNTIME_MANAGED_UNKNOWN_ERROR在此行失败:
<Setter Property="IsEnabled" Value="{Binding Enabled}" />
如何绑定到ListboxItems上的IsEnabled属性(使用Windows Phone 7)?
答案 0 :(得分:2)
属性设置器中的绑定是Silverlight 5功能。 Windows Phone 7使用Silverlight 3,因此无法使用此功能。 Windows Phone 7.1使用Silverlight 4,因此该功能甚至不是Windows Phone 7.5(Mango)的一部分。你手上等了很久!
有一些解决方法。请参阅博客文章 As the platform evolves, so do the workarounds (Better SetterValueBindingHelper makes Silverlight Setters better-er!) 。
您还可以创建ListBox
的子类,覆盖PrepareContainerForItemOverride
以在添加每个ListBoxItem
时添加绑定。请参阅 A Fast Loading Windows Phone 7 NavigationList Control 中的示例,了解如何使用该覆盖。