排序CollectionViewSource时如何在SortDescription中设置条件而不是PropertyName?

时间:2013-02-21 10:12:14

标签: wpf xaml observablecollection collectionviewsource

我想对CollectionViewSource进行排序,但我需要设置条件而不是PropertyName。事实上,我想在CollectionViewSource中使用Xaml进行排序。

  Class2Colection.OrderBy(s => s.Id).OrderBy(s =>!s.Id.HasValue));

  <CollectionViewSource Source="{Binding Class2Colection}">
       <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="Id" Direction="Ascending"/>
            <scm:SortDescription PropertyName="??" Direction="Ascending"/>
       </CollectionViewSource.SortDescriptions>
  </CollectionViewSource>

1 个答案:

答案 0 :(得分:0)

您可以通过实施自己的IComparer并将其设置为CustomSort类的公共ListCollectionView属性来应用自定义排序逻辑。但这不是你问题的完整答案,而是你可以前进的方向。

最简单的方法就是实现这个目标

Class2Colection.OrderBy(s => s.Id).OrderBy(s =>!s.Id.HasValue));
xaml中的

是在数据类中公开另一个属性,该属性将返回!Id.HasValue并按其排序。