我正在使用WPF数据网格,可以在其中选择多个记录并对其进行排序(通过单击列标题)。
我希望能够在排序后保留选定的行。
请注意,我可以保留选定的行,当要保留的行超过1时会出现问题。
例如说:我选择具有索引2和3的行,然后对特定列进行排序。排序功能完成后,我希望能够保留选定的行(旧索引-2,3)和新索引-4,5。因此,排序后,必须选择第4行和第5行。
我的datagrid的项目源的类型为ListCollectionView,当需要reqd进行排序时,我将在其中添加排序说明。
我尝试过的事情:
尝试设置SelectedItems属性。由于它是只读属性,因此不起作用。
试图设置DataGridRow(s)的IsSelected属性不起作用。尽管我可以看到将所选行的IsSelected属性设置为true,但是在屏幕上我看不到突出显示的记录。
这可能含糊不清,但我多次设置了选定的索引,但这仅突出显示了最后一个选定索引的记录。
每次排序后,高亮显示最后选择的记录。有没有一种方法可以保留选定的行?
编辑:
现在,我可以使用Datagrid.SelectedItems.Add(dataGridRow)或在datagrid行上设置IsSelected属性来设置datagrid的选定项。
问题是尽管存在选定的项目,但它们并未在屏幕上突出显示。如何获取要突出显示的行?
例如:如果在排序之前选择并突出显示了3条记录,则在排序之后,将选择所有记录(放置断点并在代码中签入),但是仅突出显示一条记录。
可以通过将行的IsSelected属性设置为true来设置数据网格的选定项。
或使用SelectedItems.Add()方法添加选定的项目。
我在做同样的事情,但是仍然看不到所选项目,因为代码中还有另一个地方正在修改所选项目。
以上解决方案已经过测试并可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句