在WPF中正确使用VirtualizingStackPanel

有人可以告诉我如何在WPF中正确使用VirtualizingStackPanel吗?我在ItemsPanelTemplate中为我的ItemsControl设置了一个VirtualizingStackPanel,并将其设置为我的ItemsHost,但是当我在我的item控件上注册一个CleanUpVirtualizedItem附加事件的监听器时,没有任何反应。我没有看到事件被调用。我也没有看到我的数据模板中的自定义控件上的任何Unloaded事件被调用,这表明我没有实际的虚拟化。任何帮助将非常感激。     
已邀请:
请尝试使用ListBox或ListView:
<ListBox ItemsSource="{Binding Items}"
    VirtualizingStackPanel.VirtualizationMode="Recycling" 
    VirtualizingStackPanel.CleanUpVirtualizedItem="ItemsControl_CleanUpVirtualizedItem">
</ListBox>
ListBox将自动处理项目的虚拟化 - 如果直接创建VirtualizingStackPanel,还需要做一些手动工作。这是因为ItemsControl的默认ControlTemplate没有ScrollViewer,这是虚拟化的关键 - 这里有更多信息。     

要回复问题请先登录注册