我有一个项目的集合视图。每个项目都是一个对象,它具有SentTime属性和另一个属性ParentId。 我想按照ParentId对项目进行分组,并按以下方式对它们进行排序:
这是一个简短的例子:
然后分组列表应如下所示:
第3项
第1项
我在ViewModel中有我的collectionviewsource。
this.MyCvs.SortDescriptions.Clear();
this.MyCvs.SortDescriptions.Add(new SortDescription("SendTime", ListSortDirection.Ascending));
this.MyCvs.GroupDescriptions.Add(new PropertyGroupDescription("ParentId"));
我知道,要在CVS中订购组,我只需要通过属性添加另一个SortDescription,通过该属性对项目进行分组(在我的案例中为ParentId),但它没有给出我想要获得的结果。 提前感谢所有人的帮助。
答案 0 :(得分:-1)
当您在网格中进行分组和排序时,您必须将排序说明设置为与您的排序描述略有不同。
this.MyCvs.SortDescriptions.Clear();
this.MyCvs.GroupDescriptions.Add(new PropertyGroupDescription("ParentId"));
this.FilteredMessages.SortDescriptions.Add(new SortDescription("ParentId", ListSortDirection.Ascending));
this.FilteredMessages.SortDescriptions.Add(new SortDescription("SendTime", ListSortDirection.Ascending));
这就是你如何实现每组只应用排序。