我们假设我有以下列表视图:
<ListView Name="list" />
以及我的函数中的以下代码:
list.Items.Add("red");
list.Items.Add("green");
如何将第一个项目的背景更改为红色,将第二个项目的背景更改为绿色?
答案 0 :(得分:1)
您可以使用ItemContainerStyle
为项目定义样式。
在样式中,您可以将Background
属性绑定到项目本身,该项目是颜色的表示。
现在,隐式颜色转换器将转换为适当的颜色并设置为背景属性。
例如
<ListView Name="list" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Background"
Value="{Binding}" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
结果
替代approch
以下是如何使用Triggers
有条件地设置值
我使用DataTrigger
查看该项目是否符合我的条件,然后我可以通过设置器设置所需的颜色
<ListView Name="list">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding}"
Value="red">
<Setter Property="Background"
Value="red" />
</DataTrigger>
<DataTrigger Binding="{Binding}"
Value="mygreen">
<Setter Property="Background"
Value="green" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
结果
在上面的示例中,您可以看到背景颜色仅适用于所需的项目,例如。红色&amp; mygreen