排序后在数据网格中保留选定的行

时间:2014-09-01 08:46:49

标签: c# sorting datagrid wpfdatagrid wpftoolkit

我正在使用WPF数据网格,其中可以选择多个记录。它可以排序(通过单击列标题)。

我希望能够在排序后 保留所选行

请注意我可以保留选定的行,当要保留的行超过1时会出现问题。

比如说:我选择索引为2&的行。 3,然后对特定列进行排序。在排序功能之后,我希望能够保留所选行(旧索引-2,3)和&新指数 - 4,5。因此,排序后,第4&必须选择第5行。

我的数据网格的项目源是ListCollectionView类型,当我要对其进行排序时,我正在添加排序描述。

我尝试过的事情:

尝试设置SelectedItems属性。不起作用,因为它是只读属性。

尝试设置DataGridRow的IsSelected属性不起作用。虽然我可以看到所选行的IsSelected属性设置为true,但在屏幕上我看不到突出显示的记录。

这个可能很模糊,但我多次设置所选索引,但这只会突出显示最后一个选定索引的记录。

每次排序后,最后选择的记录都会突出显示。有没有办法保留选定的行?

编辑:

我现在可以使用Datagrid.SelectedItems.Add(dataGridRow)设置数据网格的选定项目,或者在数据网格行上设置IsSelected属性。

问题是虽然所选项目存在,但它们不会在屏幕上突出显示。如何才能突出显示行?

例如:如果选择3条记录&在排序之前突出显示,排序之后,选择所有记录(在代码中放置断点和检查),但只突出显示一条记录。

1 个答案:

答案 0 :(得分:0)

可以通过将行的IsSelected属性设置为true来设置数据网格的选定项目。

或使用SelectedItems.Add()方法添加所选项目。

我做的相同,但仍然无法看到所选项目,因为代码中有另一个地方正在修改所选项目。

测试上述解决方案&的工作原理。