В чем разница между stackpanel и virtualizingstackpanel в WPF?

в чем разница между stackpanel и virtualizingstackpanel в WPF?

2 ответов


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

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

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

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

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


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