考虑到特定单元格内容的值,我试图更改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 = ""` .
现在,我的转换器将第一个 Value[0]
属性视为DataGridCell,但第二个值是某种由DependencyProperty构成的属性 . 就像它在我想要获取行时创建了一个默认属性或虚拟属性 . 实际上,我真的希望得到与该行相关联的类对象 . 我的DataGrid绑定到 List<of a class object>
.
我相信我离我很远 . 我如何解析DataGrid行,以便我可以提取字段的值,或绑定到该行或列本身的对象,以便我返回我想要返回的颜色?或者,有没有更好的方法让我有选择地改变给定值的DataGrid单元格的属性?
1 回答
单元格的DataContext应该是行的数据对象,尝试将第二个绑定更改为:
它直接绑定到DataContext .