Comment Prévenir WPF DataGrid à Partir de la Sélection de SelectedItem Lorsque les Éléments mis à Jour?

Mon scénario: j'ai un thread d'arrière-plan qui interroge les changements et les met à jour périodiquement un WPF de DataGrid ObservableCollection MVVM (de style). L'utilisateur peut cliquer sur une ligne dans la grille de données et de rapprocher les "détails" de la ligne à côté d'un UserControl sur le même écran principal.

Lorsque le thread d'arrière-plan a des mises à jour, il parcourt les objets dans l'ObservableCollection et remplace les objets individuels, s'ils ont changé (en d'autres termes, je ne suis pas de reliaison une toute nouvelle ObservableCollection pour le contrôle DataGrid, mais au lieu de remplacer les éléments de la collection, ce qui permet le contrôle DataGrid à maintenir l'ordre de tri lors des mises à jour).

Le problème est qu'après que l'utilisateur a sélectionné une ligne spécifique et les détails sont affichés dans les zones adjacentes UserControl, lorsque le thread d'arrière-plan des mises à jour de la grille de la grille de données perd la SelectedItem (il retombe à l'indice de -1).

Comment puis-je conserver le SelectedItem entre les mises à jour à l'ObservableCollection?

OriginalL'auteur Chris Holmes | 2010-09-02