【问题标题】:How do I create a custom (flat) collection which includes grouping?如何创建包含分组的自定义(平面)集合?
【发布时间】:2014-12-24 14:11:29
【问题描述】:

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

具体例子:

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

.

【问题讨论】:

  • 所以我想我可能终于(经过 3 天的搜索)找到了一个可行的答案,this link 来自StackOverflowFake grouping with the help of the ViewModel 部分特别有用。

标签: c# wpf datagrid data-virtualization


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 2013-05-25
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2016-02-01
    • 2011-03-24
    相关资源
    最近更新 更多