请让我摆脱痛苦:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="IsEnabled" Value="{Binding MyBoolField}" />
</Style>
</ListView.ItemContainerStyle>
其中MyBoolField
是指定ListView
的{{1}}中每个项目的可用属性,当然属于ItemsSource
类型。
所需的行为是每个bool
的{{1}}属性绑定到它包含的对象的IsEnabled
属性(来自ListViewItem
的{{1}} { {1}})。但是,上面的示例并不关注此绑定,始终为MyBoolField
。
如果我将值静态设置为ListView
,则该项目将按预期禁用。
我只能假设这是一个范围问题,或者在这个特定情况下限制绑定的使用,但我无法找到任何文档来支持这一点。
也许知道在ItemsSource
分配给true
的{{1}}的{{1}}中设置的绑定都可以正常工作,所以问题可能不是那么基本/愚蠢。
false
属性绑定到其他位置工作正常,因此底层数据源正确提供了布尔值,这似乎只是在此上下文中绑定它的问题。