我正在使用WPF数据网格,其中可以选择多个记录。它可以排序(通过单击列标题)。
我希望能够在排序后 保留所选行 。
请注意我可以保留选定的行,当要保留的行超过1时会出现问题。
比如说:我选择索引为2&的行。 3,然后对特定列进行排序。在排序功能之后,我希望能够保留所选行(旧索引-2,3)和&新指数 - 4,5。因此,排序后,第4&必须选择第5行。
我的数据网格的项目源是ListCollectionView类型,当我要对其进行排序时,我正在添加排序描述。
我尝试过的事情:
尝试设置SelectedItems属性。不起作用,因为它是只读属性。
尝试设置DataGridRow的IsSelected属性不起作用。虽然我可以看到所选行的IsSelected属性设置为true,但在屏幕上我看不到突出显示的记录。
这个可能很模糊,但我多次设置所选索引,但这只会突出显示最后一个选定索引的记录。
每次排序后,最后选择的记录都会突出显示。有没有办法保留选定的行?
编辑:
我现在可以使用Datagrid.SelectedItems.Add(dataGridRow)设置数据网格的选定项目,或者在数据网格行上设置IsSelected属性。
问题是虽然所选项目存在,但它们不会在屏幕上突出显示。如何才能突出显示行?
例如:如果选择3条记录&在排序之前突出显示,排序之后,选择所有记录(在代码中放置断点和检查),但只突出显示一条记录。
答案 0 :(得分:0)
可以通过将行的IsSelected属性设置为true来设置数据网格的选定项目。
或使用SelectedItems.Add()方法添加所选项目。
我做的相同,但仍然无法看到所选项目,因为代码中有另一个地方正在修改所选项目。
测试上述解决方案&的工作原理。