2010-11-04 20 views
0

在ListView中我有一个GridView,其中行背景根据行的数据上下文中项目的属性进行着色。取决于上下文值的WPF绑定

目前我设置使用触发器颜色在ListView的ItemContainerStyle:

 <DataTrigger Binding="{Binding Path=State}" Value="Active"> 
      <Setter Property="Background" Value="Red"/> 
     </DataTrigger> 
     <DataTrigger Binding="{Binding Path=State}" Value="Confirmed"> 
      <Setter Property="Background" Value="Green"/> 
     </DataTrigger> 

这工作得很好,但不是在数据触发固定的颜色,我想绑定到一个颜色设置,而不是。我可以在setter的Value属性中添加绑定,但是如果颜色设置更改,我希望GridView中的现有行颜色更新。设置器中的绑定只会更新设置更改后添加的行的颜色。

我可以通过为我的设置或类似的东西订阅属性更改事件来解决这个问题,但我希望有一个优雅的绑定技巧。

要求:在我的数据上下文

  • 属性的不同值应设置不同的颜色。
  • 如果值发生变化,颜色应该改变。
  • 如果每个值的颜色设置更改,颜色也应该改变。

回答

0

什么是WPF中的GridView? DataGrid?

也许你可以将该行的Background属性与State和调色板对象上的多重绑定绑定。

+0

我想我可以实现一个IMultiValueConverter,它根据颜色设置和属性值生成颜色。这也许可以工作。 – Holstebroe 2010-11-04 18:42:23

+0

GridView用于将ListView格式化为网格表格。它与DataGrid不一样。 – Holstebroe 2010-11-04 18:43:35