WPF绑定取决于上下文值

时间:2010-11-04 14:09:16

标签: wpf binding

在ListView中我有一个GridView,其中行背景的颜色取决于行的数据上下文中项目的属性。

目前,我使用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中的现有行颜色更新。在setter中绑定只会更新设置更改后添加的行的颜色。

我可以通过订阅我的设置或类似的属性更改事件来编写我的方法,但我希望有一个优雅的绑定技巧。

要求:

  • 我的数据上下文中属性的不同值应设置不同的颜色。
  • 如果值发生变化,颜色应该会改变。
  • 如果每值颜色设置发生更改,颜色也应该更改。

1 个答案:

答案 0 :(得分:0)

什么是WPF中的GridView? DataGrid?

也许您可以使用Background上的多重绑定和调色板对象绑定行的State属性。