Что на самом деле происходит в VirtualizingStackPanel.VirtualizationMode = Recycling/Standard.?
Какова фактическая разница между Утилитой/Стандартом свойства VirtualizationMode в VirtualizingStackPanel?
Ответ 1
Если для параметра VirtualizationMode
установлено значение Recycling
, VirtualizingStackPanel
будет повторно использовать контейнеры элементов вместо создания нового.
Если мы начнем с этого
-------------------------
| Container 1 | Data 1 |
-------------------------
| Container 2 | Data 2 |
-------------------------
| Container 3 | Data 3 |
И прокрутите одну позицию вниз, так что данные 1 прокручиваются вне поля зрения, а данные 4 прокручиваются в вид, а Recyling возьмет контейнер данных для Data 1 и повторно использует его для Data 4.
-------------------------
| Container 2 | Data 2 |
-------------------------
| Container 3 | Data 3 |
-------------------------
| Container 1 | Data 4 |
У меня были некоторые проблемы с этим при использовании прикрепленных свойств для контейнера Item, например, Green background, если я ввел режим редактирования для контейнера 1. Прокрутка вниз, а Data 4 также будет иметь зеленый фон, поскольку свойство Attached Property все еще установлено,
Если для параметра VirtualizationMode
установлено значение Standard
, VirtualizingStackPanel
создаст и отменит контейнеры элементов вместо повторного использования.