bin mir nicht ganz sicher, aber mag damit zu tun haben, dass Deine View, die Du ja effektiv aus einem Databinding ((DataTable)dgv.DataSource) holst, noch ein EndEdit() Aufruf benötigt. bin mir nicht sicher, ob es reicht, das auf der View aufzurufen oder ob Du den BindingManager bemühen musst.
Ist aber auch egal, denn Du kannst Dir viel Arbeit ersparen und das Ganze wesentlich bequemer lösen, wenn Du einfach die BindingSource Komponente einsetzt. Die kapselt Dir diese ganzen Details weg und ist einfach zu bedienen. Eine Umstellung auf eine BindingSource dürfte problemslos ohne großen Aufwand machbar sein.
Wir verwenden .Net 4.0 wobei wir erst vor kurzem von 2.0 migriert sind. Warum es nicht geht kann ich mir eigentlich auch nicht erklären, wahrscheinlich hat es mit dem bereits geschriebenem Code zu tun. Auf jeden Fall habe ich jetzt doch noch eine Lösung gefunden, auch wenn diese nicht wirklich schön ist:
Ich habe es auch schon über eine DataRowView probiert die eben über die Methoden BeginEdit und EndEdit verfügt:
DataView dv = new DataView((DataTable)dgv.DataSource); dv.RowFilter = sortColumn + "=" + i; DataRowView drv = dv[0]; drv.BeginEdit(); drv.Row[sortColumn] = i + 1; drv.EndEdit();
Dies führt leider auch nicht zum gewünschten Ergebnis.
Eine BindingSource dazwischen schalten funktioniert nicht ohne weiteres, da bereits sehr viel Code rund um dieses DGV geschrieben wurde und dies dann wahrscheinlich auch geändert werden müsste.
Ich hab das eben mal bei mir probiert, da funktioniert das. Welche .NET Version nutzt Du? Kannst Du evtl. deinen Beitrag editieren und mehr Code posten, so dass es ein vollständiges Beispiel wird?