Manchmal verstehe ich das .NET Framework nicht. Kann allen möglichen Sch***, aber grundlegende Sachen sind nicht oder nicht vollständig implementiert. So gibt es zum Beispiel das tolle DataGrid-Control mit dem ich einfache SQL-Datenbanktabellen bearbeite. Natürlich will ich diese Änderungen auch wieder zurück in die Datenbank schreiben aus der sie stammen. Also suche ich nach einem Event welches mir anzeigt, dass eine Änderung/Löschung erfolgreich durchgeführt wurde. Da gibt es jedoch nur das RowEditEnding-Event, das auslöst BEVOR die Änderungen in die zugrunde liegende Datenquelle zurückgeschrieben werden. Eigentlich sollte es auch das RowEditEnded-Event geben, welches eben NACH dem Speichervorgang ausgelöst wird, nicht wahr? Pech, RowEditEnded gibt es nicht für WPF, sondern nur für Silverlight.
Was soll dieser Blödsinn? Brauchen WPF-Entwickler so ein Event nicht? Wurde es schlichtweg vergessen?
Zum Glück kann man RowEditEnded mit einem Trick simulieren.
DataGrid myDataGrid = new DataGrid();
myDataGrid.RowEditEnding += myDataGrid_RowEditEnding;
private void myDataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
if (e.EditAction == DataGridEditAction.Commit)
{
Dispatcher.BeginInvoke(new Action(() => /** <Dein Code> **/, System.Windows.Threading.DispatcherPriority.Background);
}
}
Nicht schön, funktioniert aber.
Done;

