2008-09-16 9 views
5

In meiner .NET/Forms App habe ich eine DataGridView, die an eine DataTable gebunden ist. Der Benutzer wählt eine Zeile der DataGridView durch Doppelklick aus und führt eine Interaktion mit der App aus. Danach wird der Inhalt der Zeile programmgesteuert aktualisiert.Auslöser Update auf DataTable an DataGridView gebunden

Wenn der Benutzer eine neue Zeile auswählt, werden die Änderungen des vorherigen automatisch vom Framework an die DataTable weitergegeben. Wie kann ich dieses Update über meinen Code auslösen, damit der Benutzer keine neue Zeile auswählen muss?

Antwort

0

Ich denke, es hängt davon ab, was das Update auslöst, wenn es in einer Validierungsroutine ist, können Sie das einfach aufrufen, nachdem der Benutzer beim Bearbeiten der Daten auf OK geklickt hat. Ihre Frage ist vage, es wäre einfacher, mit mehr Informationen zu antworten. Was ist diese Interaktion? Ist es ein Dialog? Was aktualisiert die Daten?

0

Hier ist der Prozess, dies zu klären, ist:

  1. user Ein Doppelklick Reihe
  2. app Daten von db abruft, verarbeitet abgerufenen Daten und füllt Steuerelemente auf der gleichen Form wie das Datagridview
  3. Benutzer mit Kontrollen interagiert und schließlich drückt gelten Taste auf der gleichen Form
  4. App verarbeitet Zustand der Kontrollen, schreibt Daten in db und schreibt Daten in Datagridview

  5. IF Benutzerauswahl auf Datagridview bewegt

  6. DANN werden Änderungen an den gebundenen Datatable

    propagieren

Ich mag 6 auslösen sofort nach der Datagridview von meinem Code zu ändern.

4

Ich hatte gerade das gleiche Problem, und fand die Antwort here:

Wenn der Benutzer von der Reihe weg navigiert, verpflichtet sich die Steuerung alle Zeilen Änderungen. Der Benutzer kann auch STRG + EINGABETASTE drücken, um Zeilenänderungen festzuschreiben, ohne die Zeile zu verlassen. Um die Zeile programmgesteuert zu ändern, rufen Sie die Validate-Methode des Formulars auf. Wenn Ihre Datenquelle eine BindingSource ist, können Sie auch BindingSource.EndEdit aufrufen.

Aufruf Validate() funktionierte für mich.

+0

Ich habe die Validate-Methode des Formulars für ein DataGridView verwendet, das an ein DataSet gebunden ist. Danke für die Informationen. Ich habe die DataGridView-Methoden und das DataSet nach etwas durchsucht. – ManiacZX

Verwandte Themen