使用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

下一篇: Databinding in WinForms performing async data import