0

我正在使用 WPF DataGrid 和 .Net 4.5,并且正在尝试为大型集合滚动我自己的数据虚拟化容器。我已经在网上找到了许多有用的例子来说明如何实现数据虚拟化,但是在我看到的每个例子中,如果你进行任何分组,节省的费用就会丢失。我的分组是简单而静态的。有没有办法在 WPF 中伪造分组,这样我的集合就不必提前枚举所有项目?例如,有没有人覆盖ListCollectionView's并在每个组的开头GetItemAt()返回一个对象?CollectionViewGroup

具体示例:

  1. 例如,我有一个包含 10 万条记录的数据库。我想创建一个类似于Bea Stollnitz 示例的数据虚拟化集合,并在 WPF DataGrid 中使用它。
  2. 我想在一个字段上对 DataGrid 中的项目进行分组,但我可以通过修改我的数据库查询来做到这一点,首先返回组 A 中的所有项目,然后返回组 B 中的所有项目。分组甚至在 DataTable 看到它之前就完成了。
  3. 即使我的集合(从 DataGrid 的角度来看)是扁平的,我如何直观地表示 WPF DataGrid 内的分组?我发现在 DataGrid 中显示分组的唯一方法是使用 CollectionView 或类似方法。

.

4

1 回答 1

1

如果您正在处理一个平面列表和一个静态分组列表并且担心与聚合相关的性能,我会考虑将数据集的两个版本存储在一个索引中,然后为每个特定情况获取您需要的任何一个。

于 2014-10-29T00:22:34.170 回答