2014-09-01 42 views
2

我正在使用可以选择多个记录的WPF数据网格&可以对它进行排序(通过单击列标题)。在排序后在数据网格中保留选定的行

我希望能够保留选定的行排序后。

请注意,我可以保留选定行,问题就出现了,当行保留超过1

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

我的数据网格的项目源是ListCollectionView类型的,我需要在需要排序时添加排序描述。

事情我已经尝试:

尝试设置selectedItems属性。由于它是只读属性,因此不起作用。

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

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

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

编辑:

我现在可以设置使用Datagrid.SelectedItems.Add(dataGridRow)或设置在DataGrid行IsSelected属性DataGrid的选择项。

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

例如:如果选择了3条记录,&在排序前高亮显示,排序后所有记录被选中(在代码中输入断点&),但只有一条记录被突出显示。

回答

0

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

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

我在做同样的事情,但仍然看不到所选的项目,因为在选择的项目被修改的代码中还有另一个地方。

以上解决方案经过测试&的作品。

相关问题