Wo ist das DataGrid.RowEditEnded-Event?

    • WPF

      Wo ist das DataGrid.RowEditEnded-Event?

      Ich wollte einfach nur eine Datenbank aktualisieren, nachdem eine Zeile im DataGrid bearbeitet wurde. Ich habe mit die Events angeguckt und RowEditEnding gefunden, aber e.Row.Item enthielt noch das “alte” Item. Nach einer kurzen Suche in der MSDN Library habe ich bemerkt, dass das Silverlight-DataGrid ein RowEditEnded-Event hat, doch dem WPF-DataGrid fehlt dieses. Dasselbe trifft auf CellEditEnded zu.
      Gibt es einen anderen Weg an die “neue” Zeile zu kommen, also nachdem die Zeile bearbeitet wurde?
      Bei Silverlight benutzt man einfach das RowEditEnded-Event. Um das Parallele auch in WPF hinzubekommen, muss man ein wenig in die Trickkiste greifen, indem man per Dispatcher.Invoke eine Aktion ausführen lässt, die durch die niedrige Proirität erst nach dem RowEditEnding-Event ausgeführt wird. In Codeform sieht das ganze beispielsweise so aus:

      VB.NET-Quellcode

      1. Private Sub dg_RowEditEnding(sender As Object, e As DataGridRowEditEndingEventArgs)
      2. Dispatcher.BeginInvoke(New Action(Function() MessageBox.Show(e.Row.Item.ToString())),System.Windows.Threading.DispatcherPriority.Background)
      3. End Sub

      Eine C# des Codes finden Sie hier auf meiner Seite.

      Schon hat man ein RowEditEnded-Event-Fake.

      lg SeriTools
      | Keine Fragen per PN oder Skype.