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