Falls noch nicht so vorgegangen wird, sollte man zuerst mal das DataGrid an eine ObservableCollection<T> oder an einen eigenen Listentyp, der INotifyCollectionChanged und INotifyPropertyChanged implementiert, binden. Falls man das nämlich an eine List<T> o.ä. bindet, kopiert er im Hintergrund automatisch die Items in eine neue ObservableCollection<T>, und man verliert hier die nötige Kontrolle.
Sodann darf man beim Aktualisieren der Daten diese _nicht_ in eine neue Liste laden und dann als DataSource dem Grid zuweisen. Vielmehr muss man die vorhandene ObservableCollection<T> mit den neuen Daten abgleichen (neue hinzufügen, nicht mehr vorhandene entfernen). Wobei man natürlich beachten muss, dass hier die entsprechenden Events geschmissen werden und man deshalb evtl beachten und unterscheiden muss, ob eine neue Zeile durch den Benutzer oder durch einen Aktualisierungsvorgang hinzugefügt wurde.
Hierzu ist natürlich ein wenig mehr Code erforderlich, der normalerweise in das Viewmodel des MVVM-Patterns gehört.
vor 10 Monate veröffentlicht
#