Как предотвратить выбор сетки данных WPF при выборе элементов при обновлении элементов?

Мой сценарий: у меня есть фоновый поток, который опрашивает изменения и периодически обновляет ObservableCollection WPF DataGrid (стиль MVVM). Пользователь может щелкнуть строку в DataGrid и отобразить «детали» этой строки в соседнем элементе управления UserControl на том же главном экране.

Когда фоновый поток имеет обновления, он циклически перебирает объекты в ObservableCollection и заменяет отдельные объекты, если они изменились (другими словами, я не привязываю целую новую ObservableCollection к DataGrid, а заменяю отдельные элементы в коллекции; это позволяет DataGrid поддерживать порядок сортировки во время обновлений).

Проблема заключается в том, что после того, как пользователь выбрал конкретную строку, и детали отображаются в смежном элементе управления пользователя, когда фоновый поток обновляет DataGrid, DataGrid теряет SelectedItem (он возвращается к индексу -1).

Как сохранить SelectedItem между обновлениями ObservableCollection?

9
задан Chris Holmes 2 September 2010 в 15:45
поделиться