几个WPF DataGrids - 多选

时间:2011-12-05 17:50:43

标签: c# wpf wpfdatagrid

我在GUI上有以下结构。 (伪代码)

StackPanel
  DataGrid1
    RowA
    RowB
  DataGrid2
    RowC
    RowD

两个数据网格都有SelectionMode = Extended,允许使用RowSelection。

以下情景:

1)用户点击RowA - 。> RowA被选中。

2)用户在按shift时点击RowD。 - >正确选择了RowA,RowB,RowC和RowD(由我自己实现逻辑)。

3)用户点击RowB。 - > RowB被选中。未选择RowA,RowC和RowD。此外,未选择来自这些未选择行的单元格。 DataGrid2中选定的索引= -1。 SelectiItems为空。一切都很好。

4)用户在按住shift的同时点击RowC。 - >现在问题出现了:RowB,RowC和RowD被选中!!!

我认为选择RowD是因为网格认为,此DataGrid2中的最后一个选择是从RowC到RowD。现在,用户在按住Shift的同时单击RowC,因此网格相信用户从RowD到RowC进行选择。但这是错误的。

如何在此网格中刷新此选择状态。如果用户在按下shift时进行新选择,则网格会记住之前选择了哪一行以确定要选择哪些行。但是最后选择哪一行的存储信息是错误的。如何更新或清除此错误信息。

感谢您的协助。

1 个答案:

答案 0 :(得分:0)

我会从你的网格中创建一个单独的对象,用于保存两个网格之间最后一次单击的项目。这样,无论何时选择新行,您都可以在此对象上看到最后在网格之间选择了哪个列,而不仅仅是当前网格上最后选择的列。