Ich habe ein WPF DataGrid das ich mit einer ObservableCollection<T> fülle.
Die Daten bekomme ich von einem WCF Service.
dgMitarbeiter.ItemsSource = new ObservableCollection<Mitarbeiter>(_wcfService.MitarbeiterGet());
Wenn ich nun Änderungen an einem Objekt per DataGrid mache, gebe ich das geändert Objekt zurück an den WCF Service.
Der WCF Service macht dann Berechnungen etc. und ändert das Objekt weiter ab (Properties werden gesetzt etc.)
_wcfService.MitarbeiterUpdate(dgMitarbeiter.SelecteItem as Mitarbeiter);
Nun möchte ich alle Änderungen die der WCF Service gemacht hat in meinem DataGrid sehen.
Ich möchte aber nicht ItemsSource nochmal setzten, da die Liste riesig ist und die Selektierungen, expanded rowDetails, sortierung, focus etc. verloren geht.
Das alles zu speichern und nach dem refresh wieder zu setzten kann nicht die Lösung sein.
Mein erfolgloser Versuch, das geänderte Objekt zu übernehmen:
((ObservableCollection<Mitarbeiter>)(dgMitarbeiter.ItemsSource))[ix] = _wfcService.MitarbeiterGetById(id);
Wenn ich das so mache, sehe ich zwar die Änderungen am DataGrid jedoch geht das Binding für ein weiteres bearbeiten komplett verloren.
Hat jemand eine Idee oder einen Tip für mein Vorhaben?
Danke