У меня есть следующая структура на GUI.(Псевдокод)
StackPanel
DataGrid1
RowA
RowB
DataGrid2
RowC
RowD
Оба массива данных имеют SelectionMode = Extended и RowSelection разрешены.
Следующий сценарий:
1) Пользователь нажимает RowA -.> RowA становитсявыбран.
2) Пользователь нажимает на RowD, нажимая Shift.-> RowA, RowB, RowC и RowD выбраны правильно (логика реализована мной).
3) Пользователь нажимает на RowB.-> RowB выбран.RowA, RowC и RowD не выбраны.Также ячейки из этих невыбранных строк не выделены.Выбранный индекс из DataGrid2 = -1.Выбранные элементы являются нулевыми.Все в порядке.
4) Пользователь нажимает на RowC, нажимая Shift.-> Теперь возникают проблемы: RowB, RowC И RowD ВЫБРАНЫ !!!
Я думаю, что RowD выбран, потому что сетка считает, что последний выбор в этом DataGrid2 был от RowC до RowD.Теперь пользователь нажимает на RowC, одновременно нажимая Shift, и, таким образом, сетка полагает, что пользователь делает выбор из RowD в RowC.Но это неправильно.
Как я могу обновить этот статус выбора внутри этой сетки.Сетка запоминает, какая строка была выбрана ранее, чтобы определить, какие строки должны быть выбраны, если пользователь делает новый выбор, нажимая клавишу Shift.Но сохраненная информация о том, какая строка была выбрана последней, неверна.Как я могу обновить или удалить эту неверную информацию.
Спасибо за вашу помощь.