假设我有以下列表视图:的ListView更改背景
<ListView Name="list" />
和我的函数中下面的代码:
list.Items.Add("red");
list.Items.Add("green");
如何更改的第一个项目的背景红色和第二个绿色?
假设我有以下列表视图:的ListView更改背景
<ListView Name="list" />
和我的函数中下面的代码:
list.Items.Add("red");
list.Items.Add("green");
如何更改的第一个项目的背景红色和第二个绿色?
您可以利用ItemContainerStyle
来定义项目的样式。
在样式中,您可以将Background
属性绑定到作为颜色表示的项目本身。
现在,隐式颜色转换器将转换为适当的颜色并设置为背景属性。
例如
<ListView Name="list" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Background"
Value="{Binding}" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
结果
备用计算策略
这里是你如何使用Triggers
设定值有条件
我用DataTrigger
看,如果该项目符合我的情况,然后我可以通过一个setter设置所需的颜色
<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>
结果
在上面的例子中你可以看到,背景颜色仅适用于所需的项目,例如。 red & mygreen
谢谢,但这不完全是我正在寻找。例如,当我添加名为mygreen的项目时,我无法更改背景。 – user3154369 2014-08-29 12:50:51
如何用“BackgroundColor”属性创建“ColorViewModel”类? list.Items.Add(new ColorViewModel(“red”,Colors.Red));然后将listitems的“Background”属性绑定到你的viewmodel的“BackgroundColor”? – SuperOli 2014-08-29 12:58:34