首页 > 解决方案 > 如何获取保留排序顺序的 ICollectionView 的源集合?

问题描述

在我的WPF应用程序中,我有一个ICollectionView用于在过滤和排序后在数据网格中显示数据列表的应用程序。一旦我按照我喜欢的方式进行过滤和排序,我想导出源集合并保留排序顺序

我可以像这样过滤后得到我的基础源集合:

var items = CollectionViewSource.GetDefaultView(MyICollectionView).SourceCollection.Cast<MyItemType>();

这会很好地返回我过滤的项目,但它会丢失排序顺序。如何获得保留顺序的过滤列表?

我知道我可以得到如下的排序描述:

var sortDescriptions = CollectionViewSource.GetDefaultView(MyICollectionView).SortDescriptions;

但这仅以字符串格式返回排序属性,在我的情况下这对我没有帮助。

标签: c#wpfsortingcollectionviewcollectionviewsource

解决方案


CollectionViewSource.GetDefaultView(Control.ItemsSource);

此处的控件是您将集合“MyICollectionView”绑定到的项目控件。有关更多信息,请查看如何获取数据集合的默认视图


推荐阅读