В чем разница между панелью стека и панелью виртуализации в WPF? - PullRequest
13 голосов
/ 20 марта 2009

В чем разница между панелью стека и панелью виртуализации в WPF?

Ответы [ 2 ]

24 голосов
/ 20 марта 2009

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

Это действительно только удобно, если

  1. Вы - элементы привязки данных, не относящиеся к пользовательскому интерфейсу, или элементы, для которых пользовательский интерфейс должен быть создан на определенной панели
  2. Вы связываете много данных

С другой стороны, StackPanel создаст элементы управления для всех элементов, содержащихся в StackPanel.

На странице MSDN VirtualizingStackPanel есть достойное обсуждение: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

1 голос
/ 20 марта 2009

Это связано с визуальным деревом. Virtualizingstackpanel работает с такими вещами, как списки и т. Д., Чтобы уменьшить размер визуального дерева, отображая только видимые элементы - это полезно, когда имеет место привязка данных.

...