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

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


person Peter    schedule 20.03.2009    source источник


Ответы (2)


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

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

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

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

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

person JaredPar    schedule 20.03.2009

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

person Fenton    schedule 20.03.2009