Я не уверен, если это проблема с элементом управления DataGrid или MultiSelectors в целом, но когда я выбираю несколько строк в сетке, событие CollectionChanged вызывается для каждой отдельной строки. Это имеет смысл, если я «перетаскиваю» мышью, но это также происходит, если я нажимаю «shift», чтобы выбрать несколько строк, или просто нажимаю верхнюю левую кнопку «выбрать все строки».
Я видел на MultiSelector, что есть методы Begin / EndUpdateSelectedItems, а также свойство IsUpdatingSelectedItems. К сожалению, мой потребитель этой коллекции / события не знает об ее источнике.
Есть ли способ, чтобы коллекция DataGrid / SelectedItems отправляла уведомление CollectionChanged только после завершения обновления?
спасибо, любезно.
Edit:
Я обнаружил, что для DataGrid свойство IsUpdatingSelectedItems не устанавливается даже при изменении большого выделения.
Edit:
Я обнаружил, что событие DataGrid SelectionChanged правильно запускается только один раз после полного изменения. К сожалению, это исключает возможность простой привязки данных, но это потенциальный обходной путь, если вы контролируете потребителя коллекции SelectedItems.