重新排序列时的WPF Datagrid CollectionViewSource用法

时间:2015-08-18 12:31:13

标签: wpf wpfdatagrid

我正在研究WPF Datagrid我们正在自定义网格以支持搜索,过滤,隐藏/取消隐藏等功能,

对于过滤和搜索,我们使用CollectionViewSource获取ICollectionView,在该列表中我们正在执行上述各种操作。

对于像搜索这样的特定功能,用户重新排序了列,然后执行了搜索操作,我使用以下函数获取ICollectionView数据:

ICollectionView objDatacollectionview = 
    CollectionViewSource.GetDefaultView(DataSource.DataGridSrcCollection);

DataSource.DataGridSrcCollection是我的ObservableCollection<DataRowView>

objDataCollectionView对象中,我得到每行的itemArray并搜索文本并开始突出显示找到文本的单元格,但我面临的问题是我的{{1加载网格时,对象始终以原始顺序返回CollectionViewSource DataRow,因为它没有考虑列重新排序,搜索没有指向第一列,它实际上指向加载第一个匹配文本时第一列的列。

我遇到的问题是,有没有办法按照正确的顺序获取项数组值如何重新排序列,如果不能,我可以使用ItemArray的任何其他方法,以便我可以搜索完成后突出显示正确的项目。

以下是我的示例代码

下面是示例代码

Collectionview

在上面的代码中,因为我正在遍历每一行itemArray数据我有原始顺序,而不是重新排序的列,我可以使用索引到列映射,但在此操作后我必须支持以前的搜索项和下一个搜索项目,所以我认为如果我每次都使用列显示索引进行搜索,会影响性能。

1 个答案:

答案 0 :(得分:0)

每个DataGridColumn都有一个DisplayIndex属性,它会告诉您列的当前位置。这将允许您确定订购。