使用多重绑定更改WPF数据网格单元格的前景颜色的问题



我试图改变一个DataGridCell的前景颜色,而不是整个行,给定特定单元格内容的值。例如,如果单元格的日期值过期,那么我想将前景设置为红色。我几乎是在我使用MultiBinding从数据网格中提取两个值并通过实现multivalueconverter的值转换器解析它的地方。

简而言之,不需要进入转换器本身,我编写了以下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行,以便我可以提取字段的值,或者绑定到该行或列本身的对象,以便我返回我想要返回的颜色?或者,是否有更好的方法让我有选择地改变给定值的数据网格单元格的属性?

单元格的DataContext应该是该行的数据对象,尝试将第二个绑定更改为:

<Binding />

直接绑定到DataContext.

最新更新