给定特定单元格内容的值,我正在尝试更改 DataGridCell 的前景色,而不是整行。例如,如果单元格的日期值已过期,那么我想将前景设置为红色。我几乎是在使用 MultiBinding 从数据网格中提取两个值并通过实现 IMultiValueConverter 的值转换器对其进行解析。
简而言之,无需进入转换器本身,我编写了以下 XAML:
<GlobalTasks:CellHighlighterConverter x:Key="cellHighlighterConverter"/>
<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>
然后我添加到我的 Datagrid : CellStyle="{StaticResource CellHighlighterStyle}"
。
现在,我的转换器将第一个Value[0]
属性视为 DataGridCell,但第二个值是某种组成的 DependencyProperty。当我真正想要获取该行时,它就像创建了一个默认或虚拟属性。事实上,我真的很想获得与该行关联的类对象。我的 DataGrid 绑定到List<of a class object>
.
我确信我在几英寸之外。如何解析 DataGrid Row 以便我可以提取字段的值,或绑定到该行或列本身的对象以便我返回我想要返回的颜色?或者,有没有更好的方法让我有选择地更改给定值的 DataGrid 单元格的属性?