Я устанавливаю стиль элемента колонки в коде, используя MultiConverter.Даже если к конвертеру обращаются и ошибок вообще нет, фон ячейки не обновляется.
private void DgBinding(DataTable dt)
{
string prevCol = "";
foreach (DataColumn dc in dt.Columns)
{
if (dc.ColumnName.StartsWith("Delta"))
{
prevCol = dc.ColumnName;
continue;
}
DataGridTextColumn col = new DataGridTextColumn
{
Header = dc.ColumnName,
Binding = new Binding(dc.ColumnName)
};
this.dgTarget.Columns.Add(col);
if (!string.IsNullOrEmpty(prevCol) && prevCol.StartsWith("Delta"))
{
MultiBinding m = new MultiBinding {Converter = new TimeSeriesColorConverter()};
m.Bindings.Add(new Binding(dc.ColumnName));
m.Bindings.Add(new Binding(prevCol));
Style style = new Style();
style.TargetType = typeof(TextBlock);
Setter setter = new Setter
{
Property = BackgroundProperty,
Value = m
};
style.Setters.Add(setter);
col.ElementStyle = style;
}
prevCol = dc.ColumnName;
}
}
Если я просто использую, col.CellStyle
, он работает, и фон обновляется, но с ElementStyle
эффекта нет вообще.Любая идея, почему?
Я не могу использовать XAML, поскольку данные являются динамическими временными рядами, а число столбцов неизвестно.