我试图根据项目本身的属性值在ListView中的每个ListViewItem上定义IsEnabled属性。下面的xaml将允许我绑定到页面的datacontext的属性,但不能绑定到正在显示的单个项目之一。
<ListView Height="450" ItemsSource="{Binding ItemCollection}" ItemClick="ItemSelected" IsItemClickEnabled="True" SelectionMode="None" FontFamily="Global User Interface">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="IsEnabled" Value="{Binding MarkedOffNotRemoved}"></Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
使用项目类型
上的属性 public Boolean MarkedOffNotRemoved
{
get
{
return MarkOff == null || !MarkOff.Removed;
}
}
使用这样的代码,我看到的错误来自ReSharper(Not VisualSTudio),它是一个&#34;无法解析数据上下文中的属性&#34;错误。该错误还表明它正在查看的上下文是页面的ViewModel,而不是单个项目。 VisualStudio编译代码时没有错误,但是页面的行为并不像预期的那样,并且在调试时,根本没有调用Mark forOffnotRemoved的get。
有没有办法将绑定更改为集合中每个项目的属性,以便实际调用绑定属性?或者我是否需要使用ItemContainerStyleSelector以及启用项的样式和禁用项的样式?