我有一个项目的collectionviewsource。每个项目都是一个对象,它有一个属性 SentTime 和另一个属性 ParentId。我想按它们的 ParentId 对项目进行分组,并按以下方式对它们进行排序:
- 组中的项目应按 SentTime 升序排序
- 组应按 SentTime 降序排序
这是一个简短的例子:
- 项目 1 发送 1/10,父 ID 1
- 项目 2 发送 2/10,父 ID 1
- 项目 3 发送 3/10,父 ID 3
- 项目 4 于 4 月 10 日发送,父 ID 3
- 项目 5 发送 5/10,父 ID 1
然后分组列表应如下所示:
第 3 项
- 第 4 项
项目 1
- 第 2 项
- 第 5 项
我在 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),但它没有给出我想要获得的结果。提前感谢大家的帮助。