2015-12-14 2 views
8

Ich habe eine kleine Demo WinForms App. Eines der Formulare ist mein Formular "Neue Person hinzufügen". Ich habe die Detailansicht anstelle der DataGridView aus meinen Datenquellen verwendet. Wenn ich Daten eintrage und auf den Speichern-Knopf im Navigator klicke, gibt es null Änderungen, aber ich setze einen MovePrevious und einen MoveNext nach meinem AddNew in der Form Load, alles funktioniert wie erwartet.Warum muss ich die Binding Source Position ändern, bevor ich SaveChanges

Warum muss ich die BindingSource-Position umschalten, bevor Änderungen erkannt und gespeichert werden?

+2

Sie müssen nicht die Position ändern, in der Tat brauchen Sie BindingSource.EndEdit() ' –

+2

Ich denke, Sie können einfach' EndEdit() 'aufrufen. doh, @RezaAghaei schlug mich um 5 Sekunden;) – MickyD

+2

EndEdit funktioniert. Danke @RezaAghaei, euch beiden wirklich! – Randy

Antwort

3

Sie müssen die Position nicht ändern. In der Tat müssen Sie BindingSource.EndEdit aufrufen, das anstehende Änderungen an der zugrunde liegenden Datenquelle anwendet.

Das Ändern der Position führt dazu, dass die zugrundeliegenden Währungsmanageraufrufe EndCurrentEdit aufgerufen werden, und das ist die Methode, die Quelle EndEdit für Sie zu binden.