如何获取保留排序顺序的 ICollectionView 的源集合?

How to get the source collection of ICollectionView preserving the sort order?

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

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

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

这个 returns 我过滤的项目很好,但它丢失了排序顺序。 如何获得保留顺序的筛选列表?

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

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

但这仅仅是 returns 字符串格式的排序属性,对我的情况没有帮助。

CollectionViewSource.GetDefaultView(Control.ItemsSource);

此处的控件是您将集合 "MyICollectionView" 绑定到的项目控件。有关详细信息,请查看 how-to-get-the-default-view-of-a-data-collection