Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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