Несколько WPF DataGrids - множественный выбор - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть следующая структура на 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.Но сохраненная информация о том, какая строка была выбрана последней, неверна.Как я могу обновить или удалить эту неверную информацию.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 06 декабря 2011

Я бы создал отдельный объект из вашей сетки, который сохранит последний нажатый элемент между двумя сетками. Таким образом, всякий раз, когда у вас выбрана новая строка, вы можете видеть на этом объекте, какой столбец был выбран последним между сетками, а не только последний выбранный столбец в текущей сетке.

...