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 и раскраску?

Благодарю.

Ответы на вопрос(3)

Ваш ответ на вопрос