使用MultiBinding更改WPF DataGrid单元格的前景色时出现问题
我试图改变DataGridCell的Foreground颜色,而不是整行,给定特定单元格内容的值。 例如,如果单元格的日期值已过期,那么我想将前景设置为红色。 我几乎在使用MultiBinding从数据网格中提取两个值,并通过实现IMultiValueConverter的值转换器解析它。
总之,如果不需要进入转换器本身,我已经写了下面的XAML:`
<Style x:Key="CellHighlighterStyle">
<Setter Property="my:ExtendedDataGrid.Foreground">
<Setter.Value>
<MultiBinding Converter="{StaticResource cellHighlighterConverter}">
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource self}"/>
<Binding Path="Row" Mode="OneWay"/>
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
I then added to my Datagrid :
CellStyle =“{StaticResource CellHighlighterStyle}”。
现在,我的转换器将第一个Value[0]
属性看作DataGridCell,但第二个值构成了DependencyProperty。 这就像它创建了一个默认或虚拟属性,当我真的想要获得该行。 实际上,我真的很想获得与该行关联的类对象。 我的DataGrid绑定到一个List<of a class object>
。
我相信我距离不远。 如何解析DataGrid行,以便我可以提取字段的值或绑定到该行或列本身的对象,以便返回我想要返回的颜色? 或者,有没有更好的方法让我有选择地改变DataGrid Cell的属性?
单元格的DataContext应该是该行的数据对象,尝试将第二个绑定更改为:
<Binding />
它直接绑定到DataContext。
链接地址: http://www.djcxy.com/p/71115.html上一篇: Problem changing the Foreground colour of a WPF DataGrid Cell using MultiBinding