Wpf 排序CollectionViewSource时,如何在SortDescription中设置条件而不是PropertyName?
我想对Wpf 排序CollectionViewSource时,如何在SortDescription中设置条件而不是PropertyName?,wpf,xaml,observablecollection,collectionviewsource,Wpf,Xaml,Observablecollection,Collectionviewsource,我想对CollectionViewSource进行排序,但我需要设置一个条件,而不是PropertyName。事实上,我想使用Xaml中的CollectionViewSource进行以下排序 Class2Colection.OrderBy(s => s.Id).OrderBy(s =>!s.Id.HasValue)); <CollectionViewSource Source="{Binding Class2Colection}"> <Col
CollectionViewSource
进行排序,但我需要设置一个条件,而不是PropertyName
。事实上,我想使用Xaml
中的CollectionViewSource
进行以下排序
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>
class2collection.OrderBy(s=>s.Id).OrderBy(s=>!s.Id.HasValue));
您可以通过实现自己的IComparer
并将其设置为ListCollectionView
类的publicCustomSort
属性来应用自定义排序逻辑。但这并不是你问题的完整答案,而是你可以前进的方向
最简单的方法就是这样
在
xaml
中,要公开数据类中的另一个属性,该属性将返回!Id.HasValue
并按它排序。你能举例说明你想在什么条件下排序吗?@Florian Gl:我已经给出了上面的例子:class2collection.OrderBy(s=>s.Id.OrderBy(s=>!s.Id.HasValue))代码>@AWoodman:非常感谢。这不是我要找的,但对这个案子有效。@AWoodman:我当然会,但现在我在等待另一个解决方案。
Class2Colection.OrderBy(s => s.Id).OrderBy(s =>!s.Id.HasValue));