筛选CollectionViewSource,然后手动排序

时间:2019-03-12 14:05:53

标签: c# wpf collectionviewsource

我有一个绑定到ObservableCollection<Recipe>的{​​{1}}。可以通过我的个人谓词实现进行过滤。 ICollectionView绑定在ICollectionView上。

现在,我想在过滤集合后重新排序dataGrid的列表。

食谱的属性为“标识符”。如果您确切输入了食谱的标识符,则应将其放在列表的顶部。

一个例子:

  • 12345
  • 1234
  • 123

如果您在过滤器中输入Recipes,则应将1234Recipe放在列表的顶部,而不是放在第二位。

Identifier = 1234

1 个答案:

答案 0 :(得分:0)

您可以在SortOrder类中添加Recipe属性,并在SortDescription(nameof(Recipe.SortOrder), ListSortDirection.Ascending)的{​​{1}}属性中添加新的SortDescriptions。然后,根据所需的排序顺序设置所有ICollectionView对象的SortOrder属性的值。这应该重新排列食谱列表。

根据您的要求,您可能需要使用Recipe并启用实时排序:https://wpf.2000things.com/2014/01/16/988-enabling-live-sorting-in-a-collectionviewsource/

@redcurry指出,如果您使用CollectionViewSource,则可以将ListCollectionView属性设置为CustomSort