WPF CollectionView

时间:2017-01-19 22:37:45

标签: c# wpf sorting

我尝试将一些SortDescriptions添加到CollectionView中,但无法弄清楚如何获得我之后的行为。

基本上我想首先按日期时间排序,然后按第二个属性(字符串)排序,但按特定顺序排序。在纯粹的c#/ linq方面,我过去以一种丑陋的方式做到了这一点,例如:

List<string> regionOrder = new List<string> { "AS", "CE", "KC", "NA", "LAM" };
results = results.OrderBy(x => x.Day).ThenBy(x => regionOrder.IndexOf(x.Region)).ToList();

return new DataCollectionResult<DailyBuildPlan> {Results = results, Error = error};

有关如何使用CollectionView的排序说明实现此目的的任何想法?我认为添加多个排序说明没什么问题,但我不确定如何在第二个属性上获取我需要的自定义顺序

e.g。

MyCollectionView.SortDescriptions.Add(new SortDescription("Day", ListSortDirection.Ascending));
MyCollectionView.SortDescriptions.Add(new SortDescription("Region", ListSortDirection.MyCustomOrder));

1 个答案:

答案 0 :(得分:0)

将CollectionView作为ListCollectionView获取,然后您可以指定CustomSort回调比较器。