在WPF中正确使用虚拟stackpanel
-
24-10-2019 - |
题
有人可以告诉我如何在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,这是虚拟化的关键 - 更多信息 这里.
不隶属于 StackOverflow