我已经自定义了 ListBox 的样式,以便注册VirtualizingStackPanel.CleanUpVirtualizedItemEvent
. 我需要在项目重新虚拟化时释放一些内存,然后在取消虚拟化时重新加载内存。每当我检查该项目是否已虚拟化时,它总是返回 false:
const bool isVirtualizing = VirtualizingStackPanel::GetIsVirtualizing(e->UIElement); // Always returns false
我如何处理这个事件?我可以更改ListBox
使用VirtualizingStackPanel.VirtualizationMode="Standard"
,但这会导致 UI 不断创建和删除,这可能会导致性能问题。如果可能的话,我宁愿回收 UI 控件。