RowVirtualization вызывает неправильный цвет фона для строк
У меня есть приложение WPF и на некоторых страницах есть Datagrid. Эта сетка данных должна загружать 5000 строк одновременно (нумерация страниц не подходит для меня), и это занимает много времени. Я установил EnableRowVirtualization = True, и производительность сейчас приемлема, но здесь есть проблема. В моей таблице данных мне нужно установить разные цвета фона для разных строк в зависимости от значения столбца (скажем, STATUS), изменив EnableRowVirtualization с False на True, что привело к неправильной окраске при прокрутке.
----Редактировать----
Вот мой код XAML:
и следующие коды делают привязки:
Примечание: все мои столбцы генерируются на лету, зависит от объекта, который требуется загрузить:
public static DataGridColumn CreateTextBoxWithBackgroudColumn(DataColumn dataCol, string columnName)
{
DataGridTemplateColumn dgtc = new DataGridTemplateColumn();
dgtc.Header = columnName;
dgtc.HeaderStyle = (Style)(App.Current as App).FindResource("ColumnHeaderStyle");
FrameworkElementFactory cellTemplateFactory = new FrameworkElementFactory(typeof(TextBlock));
Binding dataBinding = new Binding(dataCol.ColumnName);
dataBinding.Mode = BindingMode.TwoWay;
dataBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
dataBinding.Converter = new BackGroundConverter();
cellTemplateFactory.SetBinding(TextBlock.BackgroundProperty, dataBinding);
DataTemplate cellTemplate = new DataTemplate();
cellTemplate.VisualTree = cellTemplateFactory;
cellTemplate.Seal();
dgtc.CellTemplate = cellTemplate;
return dgtc;
}
Возвращенный DataGridColumn будет добавлен в мои столбцы DataGrid.
Возможно ли одновременно иметь RowVirtualization и раскраску?
Благодарю.