单元格样式绑定不会在值更改时更新
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));
我有一个绑定到对象集合的 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));