我在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时进行新选择,则网格会记住之前选择了哪一行以确定要选择哪些行。但是最后选择哪一行的存储信息是错误的。如何更新或清除此错误信息。
感谢您的协助。
答案 0 :(得分:0)
我会从你的网格中创建一个单独的对象,用于保存两个网格之间最后一次单击的项目。这样,无论何时选择新行,您都可以在此对象上看到最后在网格之间选择了哪个列,而不仅仅是当前网格上最后选择的列。