所以我有一个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
的新集合。只是想知道是否有更优选/更简单的方式。
答案 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