单元格样式绑定不会在值更改时更新

Cell Style Binding does not Update on Value Change

我有一个绑定到对象集合的 DataGrid。每个 DataGridColumn 都是在代码隐藏中创建的。

这些列的背景取决于对象的不同值。我在 CellStyle 中创建了背景绑定(因为它不应该覆盖来自触发器的默认样式)。

var backgroundBinding = new Binding         
{
    Converter = new MyBindingConverter(),
    ConverterParameter = new MyConverterParameter()
};
cellStyle.Setters.Add(new Setter(Control.BackgroundProperty, backgroundBinding));

如您所见,它直接绑定到元素。由于不同的值正在改变,列的值会相应更新,但不会调用绑定的转换器。 我尝试调用 OnPropertyChanged(null) 来显示对象已更新,但遗憾的是这不起作用。

您是否尝试为 backgroundBinding 指定 Path?类似于:

var backgroundBinding = new Binding         
{
    Converter = new MyBindingConverter(),
    ConverterParameter = new MyConverterParameter(),
    ElementName = YourElementName,
    Path = PropertyOnElement
};
cellStyle.Setters.Add(new Setter(Control.BackgroundProperty, backgroundBinding));