根据item的属性设置ListViewItem属性IsEnabled

时间:2014-08-29 07:07:48

标签: c# xaml windows-runtime

我试图根据项目本身的属性值在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以及启用项的样式和禁用项的样式?

0 个答案:

没有答案