我在ControlTemplate中使用VirtualizingStackPanel处理ItemsControl。在某种程度上,我的虚拟化工作正在进行中。我已将调试语句放在我的DataTemplate中的控件的Loaded和Unloaded事件处理程序中,但是在控件退出视图后它们不会立即卸载。有没有办法强迫这种行为?
答案 0 :(得分:2)
您可能有幸将VirtualizationMode设置为Recycled。 VirtualizingStackPanel.cs的源代码中有注释表明Recycled模式会立即清除渲染器(而不是在后台执行):
//
// 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的完整源代码: