Проблема перерисовки Silverlight DataGrid - PullRequest
0 голосов
/ 31 июля 2009

У меня есть Silverlight DataGrid, который содержит один столбец шаблона, который отображает пользовательский элемент управления. Пользовательский элемент управления имеет индикатор выполнения для представления обработки, а когда обработка завершена, анимация скрывает индикатор выполнения и показывает готовую метку.

В двух случаях сетка данных, кажется, не перерисовывает себя:

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

Второй , в usercontrol есть событие click, которое отображает всплывающее окно. Когда всплывающее окно закрывается, пользовательский контроль снова не может правильно перерисовать себя.

Любые идеи относительно того, почему это поведение происходит и способы его обхода?

Ответы [ 2 ]

1 голос
/ 31 августа 2009

Предыдущий ответ правильный. Я обнаружил, что иногда вам нужно правильно обрабатывать события Loading_Row и Unloading_Row, если вы хотите, чтобы какой-либо из ваших элементов управления работал правильно. В моих случаях наличие элементов управления на самом деле связано с объектом для лучшей работы. Если вы попытаетесь использовать анимацию и видимость и тому подобное, вы увидите странное поведение, но если вы привязываете индикатор выполнения к объекту, который поддерживает прогресс для каждого элемента за кулисами, то каждый раз, когда отображается этот ряд, он будет перепривязываться и перерисовываться.

0 голосов
/ 09 августа 2009

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

Я не знаю, есть ли обходной путь.

...