使用分组时ListView更新速度极慢

时间:2012-03-09 18:26:56

标签: wpf

据我了解,ListView的默认ItemsPanel是VirtualizingStackPanel。当我为列表视图创建GroupStyle时,刷新率非常糟糕。根据这篇文章中的评论

WPF ListView Very Slow Performance - Why? (ElementHost, or Other Reason?)

GroupStyle使用StackPanel覆盖默认的VirtualStackPanel。我已经明确地声明了VirutalzingStackPanel作为我的ListView的ItemsPanel,但性能仍然很糟糕。为什么分组这么慢?我不明白分组的可能性很大。

1 个答案:

答案 0 :(得分:3)

正如下面帖子的作者提到的那样

  

在虚拟化的普通WPF ItemsControl中,例如ListBox或ListView,当您开启分组时,虚拟化会关闭。这个   示例展示了如何实现分组的相同视觉效果   仍然具有虚拟化功能的相同API。

查看示例项目中开发的此解决方案。但是,根本不是一种简单或直接的方法。

Grouping and Virtualization

请记住,此方法适用于.NET 4.0及更早版本。我相信.NET 4.5中引入了一些新方法来处理这种情况,例如VirtualizingPanel.IsVirtualizingWhenGrouping属性。但是我没有测试过这个,因为我无法访问.NET 4.5 atm。

VirtualizingPanel.IsVirtualizingWhenGrouping Attached Property

  

获取或设置一个值,该值指示此VirtualizingPanel   在显示组时,虚拟化其集合中的项目。