что делает «VirtualizingStackPanel.IsVirtualizingProperty = true» в DataGrid? - PullRequest
1 голос
/ 03 февраля 2011

все еще пытаюсь ускорить работу моей DataGrid, у меня есть вопрос по этому поводу:

myDataGrid.SetValue(VirtualizingStackPanel.IsVirtualizingProperty, true);

Я неоднократно читал, что это может улучшить время загрузки dataGrid.

Right...

  • пробовал, вообще не видел различий
  • пробовал все возможные комбинации с виртуализацией строк / столбцов, тоже не видел различий
  • я пытался установить это везде, где я думал, что это может иметь значение в шаблоне DG (на самой DG, затем на scrollviewer и в паре других мест, которые я бы предпочел не рассказывать, поскольку они были действительно длинными кадрами, и мне стыднопризнайся, что я даже попробовал их), но безуспешно.

поэтому мои вопросы:

  • Что должна делать эта строка кода?
  • как это работает?
  • куда мне его поместить, чтобы действительно увидеть разницу?
  • и кто-нибудь вообще когда-либо пробовал это, и действительно ли было существенное улучшение во время загрузки DG?или все предложения о написании этого просто: предложения?

1 Ответ

2 голосов
/ 03 февраля 2011

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

Виртуализация означает, что элементы управления, необходимые для отображения данных, генерируются, только если данные являются видимыми, это означает, что невидимые строки не используют дополнительную память для своих элементов управления, если они не видны, в конце концов, нет необходимости создавать тысячи элементов управления, если только 20 видны одновременно.

...