Какова реальная разница между Recycling / Standard свойства VirtualizationMode в VirtualizingStackPanel? - PullRequest
21 голосов
/ 29 ноября 2010

Что в действительности происходит в VirtualizingStackPanel.VirtualizationMode = Recycling / Standard.?

1 Ответ

40 голосов
/ 29 ноября 2010

Если для VirtualizationMode установлено значение Recycling, VirtualizingStackPanel будет повторно использовать контейнеры элементов вместо того, чтобы создавать новый.Если мы начнем с этого

------------------------- 
| Container 1  | Data 1 |  
-------------------------  
| Container 2  | Data 2 |  
-------------------------  
| Container 3  | Data 3 |  

и прокрутим одну позицию вниз, чтобы данные 1 прокручивались вне поля зрения, а данные 4 прокручивались в поле зрения, то при повторном цикле для элемента 1 будет выбран контейнер элементов, и он будет повторно использован дляДанные 4.

------------------------- 
| Container 2  | Data 2 |  
-------------------------  
| Container 3  | Data 3 |  
-------------------------  
| Container 1  | Data 4 |  

У меня были некоторые проблемы с этим при использовании вложенных свойств для контейнера Item, например, зеленый фон, если я вошел в режим редактирования для Контейнера 1. Прокрутка вниз и Data 4 также будет иметьЗеленый фон, так как свойство Attached все еще установлено.

Если для VirtualizationMode установлено значение Standard, VirtualizingStackPanel будет создавать и отбрасывать контейнеры элементов вместо их повторного использования.

...