我有一个绑定到对象集合的DataGrid。每个DataGridColumn都是在代码后面创建的。
这些列的背景取决于对象的不同值。我在CellStyle中创建了背景绑定(因为它不应该覆盖触发器的默认样式)。
var backgroundBinding = new Binding
{
Converter = new MyBindingConverter(),
ConverterParameter = new MyConverterParameter()
};
cellStyle.Setters.Add(new Setter(Control.BackgroundProperty, backgroundBinding));
正如您所看到的,它直接绑定到元素。由于不同的值正在改变,因此列的值会相应更新,但不会调用Binding的转换器。
我试着调用OnPropertyChanged(null)
来表明对象已更新,但遗憾的是这不起作用。
答案 0 :(得分:1)
您是否尝试为backgroundBinding指定Path
?类似的东西:
var backgroundBinding = new Binding
{
Converter = new MyBindingConverter(),
ConverterParameter = new MyConverterParameter(),
ElementName = YourElementName,
Path = PropertyOnElement
};
cellStyle.Setters.Add(new Setter(Control.BackgroundProperty, backgroundBinding));