在WPF Datagrid中分组?

时间:2015-05-19 16:57:20

标签: c# wpf xaml

所以我有一个ObservableCollection个对象(每个对象都有一个Name,Number和Type属性):

Name Number Type
a    1      1
a    1      2
b    2      1
c    4      3
c    4      5

我想在datagrid中显示的是这样的(按类型分组):

Name Number Types
a    1      1, 2
b    2      1
c    4      3, 5

对于如何使用模型视图实现此目标有点困惑。一种方法是我可以创建一个新的对象类型,一个对于类型有List<int>的对象类型,然后迭代原始集合并创建一个绑定到DataGrid的新集合。只是想知道是否有更优选/更简单的方式。

1 个答案:

答案 0 :(得分:0)

您可以使用包裹当前数据源的CollectionViewSource。这将允许您添加分组和过滤器。

<CollectionViewSource x:Key="cvsTasks" Source="{StaticResource tasks}">
    <CollectionViewSource.GroupDescriptions>
        <PropertyGroupDescription PropertyName="ProjectName"/>
        <PropertyGroupDescription PropertyName="Complete"/>
    </CollectionViewSource.GroupDescriptions>
</CollectionViewSource>

有关完整示例,请参阅此链接:https://msdn.microsoft.com/en-us/library/ff407126%28v=vs.110%29.aspx