数据网格虚拟化绑定到ListCollectionView与GroupDescriptions
本文关键字:ListCollectionView GroupDescriptions 绑定 数据网 网格 虚拟化 数据 | 更新日期: 2023-09-27 18:17:23
正如标题所说,我有一个绑定到ListViewCollection的WPF DataGrid。数据集很大,但加载速度非常快——这要归功于行虚拟化。
然而,只要我添加一个分组,它就开始加载每一行(我可以从wpf调试消息中看到),让我摆弄我的拇指并吃掉所有的ram。
这里提到:http://marlongrech.wordpress.com/2008/11/22/icollectionview-explained/
特别是表示"分组将在默认情况下禁用虚拟化支持"的位。因此,对大型数据集进行分组可能会非常昂贵,在这样做之前请三思……"
这解释了很多,但是有人知道如何覆盖"默认"位在那句话吗?我应该用别的东西吗?
框架4.0可能没有方便的解决方案,请参阅WPF DataGrid虚拟化与分组。
您可以将列表平铺并创建自己的分组(他们在开玩笑吗?)分组和虚拟化http://code.msdn.microsoft.com/windowsdesktop/Grouping-and-Virtualization-56e7d3fe
似乎在框架4.5中有一个解决方案,参见:
在显示大量分组数据时提高性能
UI虚拟化发生在用户界面(UI)元素的子集是从基于哪些项的大量数据项生成的在屏幕上是可见的。VirtualizingPanel定义IsVirtualizingWhenGrouping附加属性,启用UI分组数据的虚拟化。有关分组的更多信息数据,请参见如何:在XAML中使用视图对数据进行排序和分组。更多的有关虚拟化分组数据的信息,请参见IsVirtualizingWhenGrouping附加属性。(来自WPF版本4.5中的新功能,不再提供强调文本)