【发布时间】:2016-01-20 16:36:31
【问题描述】:
基本上,我有一个 ListView 有两个条件:
- 不要让用户选择任何项目(出于可用性原因)
- 如果行满足特定条件,则显示具有特殊背景颜色的行
做这两点很容易,但我无法同时做到这两点。一个让解释更容易的例子:
<ListView ItemsSource="{Binding Items}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Focusable" Value="false"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsOnline}" Value="false">
<Setter Property="Background" Value="LightGray" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.Resources>
[... the rest ...]
</ListView>
如果我删除 ListView.ItemContainerStyle 部分,背景颜色绘制正确。但是当 Focusable 设置为 false 时,将 Background 设置为 LightGray 是没有效果的。
有没有办法同时做到这两点?
【问题讨论】:
-
可能更容易使用像这样的项目模板stackoverflow.com/a/6174312/1328536
-
项目模板可能是一种解决方法,是的。谢谢你的提示。不过,我希望能指出我的一些愚蠢的思维错误:)。我的意思是,默认行为正是我所需要的:我只想列出集合的每个项目并在列中显示不同的属性。到目前为止,它做得非常好。不知道制作这样一个通用的项目模板有多容易?