【发布时间】:2013-01-07 15:36:33
【问题描述】:
我有一个datagrid,它的源CollectionViewSource 具有自定义排序功能,我需要获取已排序的项目集合,如数据网格中所示。我可以得到排序的描述和排序的源集合,但我需要这个集合很多次。
有什么方法可以让排序的集合启用索引 (item[index])?
【问题讨论】:
标签: c# wpf collectionviewsource
我有一个datagrid,它的源CollectionViewSource 具有自定义排序功能,我需要获取已排序的项目集合,如数据网格中所示。我可以得到排序的描述和排序的源集合,但我需要这个集合很多次。
有什么方法可以让排序的集合启用索引 (item[index])?
【问题讨论】:
标签: c# wpf collectionviewsource
CollectionViewSource 的View 属性返回一个排序的ICollectionView。由于这是一个 IEnumerable,您可以使用 Linq 从中创建一个 List,可以通过索引访问:
// using System.Linq;
var list = collectionView.View.Cast<object>().ToList();
var firstItem = list[0];
【讨论】:
Cast 很快,但ToList 可能会创建整个集合的副本。
var firstItem = collectionView.View.Cast<object>().First()
firstItem = list[0] 只是一个示例访问。