3

Я работаю с элементом ItemsControl, используя VirtualizingStackPanel в своем ControlTemplate. У меня виртуализация работает, в некоторой степени. Я поставил отладочные операторы в обработчиках событий Loaded и Unloaded для элементов управления в DataTemplate для элементов, но они не выгружаются сразу после того, как элементы управления выходят из поля зрения. Есть ли способ заставить это поведение?Как VirtualizationStackPanel решает, когда выгружать (удалять?) Виртуализированные элементы управления?

+0

Можете ли вы разместить xaml? – baalazamon

ответ

2

Возможно, вам повезло, что VirtualizationMode может быть переработан. Есть комментарии в исходном коде для VirtualizingStackPanel.cs, которые указывают на Реклассифицировано режим немедленно очищает рендеров (вместо того, чтобы делать это в фоновом режиме):

// 
    // Delayed Cleanup is used when the VirtualizationMode is standard (not recycling) and the panel is scrolling and item-based 
    // It chooses to defer virtualizing items until there are enough available. It then cleans them using a background priority dispatcher 
    // work item 
    // 

Примечание, вы можете найти полный источник VirtualizingStackPanel здесь:

http://referencesource.microsoft.com/netframework.aspx

+0

Большое спасибо за ссылку на источники, я всегда просто охотился в Интернете за обрывки, совершенно не замечая, что я могу просто получить от Microsoft все! – dain

Смежные вопросы