В чем разница между панелью стека и панелью виртуализации в WPF?
В чем разница между панелью стека и областью виртуализации в WPF?
Ответ 1
VirtualizationStackPanel может предлагать преимущества производительности при работе с очень большими коллекциями. Он делает это только с помощью рендеринга и обработки подмножества данных, видимых пользователю, и обработки всего списка данных. Создавая только элементы пользовательского интерфейса для видимых элементов, это может значительно уменьшить объем работы, которую он должен выполнить.
Это действительно удобно, но если
- Вы привязываете данные к элементам или элементам, не относящимся к пользовательскому интерфейсу, для которых пользовательский интерфейс должен быть создан на конкретной панели.
- Вы привязываете данные к большому количеству данных.
С другой стороны, StackPanel будет создавать элементы управления для всех элементов, содержащихся в StackPanel.
На странице MSDN VirtualizingStackPanel есть достойное обсуждение: http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx
Ответ 2
Это связано с визуальным деревом. Панель virtualizingstackpanel работает с такими вещами, как поля списка и т.д., Чтобы уменьшить размер визуального дерева, только отображая видимые элементы - это полезно, когда происходит привязка данных.