有人可以告诉我如何在WPF中正确使用虚拟化stackpanel吗?我已经在我的ItemScontrol的ItemSpaneltemplate中设置了一个虚拟stackpanel,并将其设置为我的项目shost,但是当我在我的项目控件上注册一个clearupVirtualizedItem事件的侦听器时,什么也不会发生。我看不到活动被打来电话。我也没有在调用数据模板中的自定义控件上看到任何卸载的事件,向我表明没有实际的虚拟化。任何帮助将非常感激。

有帮助吗?

解决方案

尝试使用listbox或ListView:

<ListBox ItemsSource="{Binding Items}"
    VirtualizingStackPanel.VirtualizationMode="Recycling" 
    VirtualizingStackPanel.CleanUpVirtualizedItem="ItemsControl_CleanUpVirtualizedItem">
</ListBox>

ListBox将自动处理项目的虚拟化 - 如果您直接创建VirtualizingStackPanel,则需要做更多的手动工作。这是因为 ItemScontrol的默认控制图板没有ScrollViewer,这是虚拟化的关键 - 更多信息 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top