Мерцание WPF DataGrid при использовании пропорциональных размеров столбцов - PullRequest
3 голосов
/ 14 сентября 2011

У меня есть настроенный элемент управления сеткой данных, который динамически создает столбцы в зависимости от различных обстоятельств.

Первоначально я использовал фиксированные размеры столбцов как таковые.

                DataGridTextColumn column = new DataGridTextColumn();
                column.Width = new DataGridLength(entity.DisplaySize);

Это в цикле foreach. Однако мы решили, что нам нужно обеспечить, чтобы у нас никогда не было горизонтальной прокрутки, поэтому я изменил ее на следующее, чтобы столбцы всегда помещались внутри сетки данных и сохраняли свой размер пропорционально друг другу.

                DataGridTextColumn column = new DataGridTextColumn();
                column.Width = new DataGridLength(entity.DisplaySize, DataGridLengthUnitType.Star);

Однако теперь, когда сетка данных рисует или перерисовывается, появляется мерцание. Похоже, что изначально создается сетка данных со всеми столбцами с минимальным размером 20, а затем, когда все столбцы созданы, он расширяет их, чтобы заполнить область. Такое поведение отсутствовало в предыдущем методе предоставления точной ширины столбца.

Я играл с различными настройками виртуализации, но безрезультатно.

У кого-нибудь есть идеи, пожалуйста?

...