Verlangsamung der DataGridView-Aktualisierung beim Bearbeiten der zugrunde liegenden DataTable

8

Wenn Sie ein DataGridView haben, das an ein DataView (someDataTable.DefaultView) gebunden ist.

.. und eine Reihe von Änderungen an Zeilen in der zugrunde liegenden DataTable von Code durchgeführt.

Ist es möglich, die Aktualisierung der DataGridView zu verschieben, bis Sie entschieden haben, dass Sie mit dem Bearbeiten von Zeilen fertig sind?

Wie es ist, wird das DataGridView nach jeder Änderung aktualisiert, die, wenn Sie keine sofortige Rückmeldung benötigen, ineffizient und ein wenig visuell störend ist, wenn Sie viele Zeilen in der DataTable nacheinander aktualisieren.

>     
xyz 15.07.2009, 17:36
quelle

1 Antwort

15

Um die Datenbindung vorübergehend aussetzen zu können, müssen Sie eine BindingSource zwischen deinem DataGridView und deinem DataView . Wenn Sie die Eigenschaft RaiseListChangedEvents von BindingSource auf false setzen, werden Änderungen an der zugrunde liegenden Quelle nicht an DataGridView gemeldet. Sie können ziehen & amp; Löschen Sie eine Bindingsource -Komponente aus der Toolbox in der Entwurfsansicht. Ich habe versucht, die Datenquellen über den Designer einzurichten, aber es hat nicht funktioniert, also habe ich es im Code gemacht:

%Vor%

Um die Datenbindung zu unterbrechen, setzen Sie einfach die Eigenschaft RaiseListChangedEvents auf false:

%Vor%

Um die Datenbindung wieder aufzunehmen, setzen Sie einfach RaiseListChangedEvents auf true und setzen Sie die Bindungen zurück, so dass die Anzeige aktualisiert wird:

%Vor%     
Julien Poulin 15.07.2009, 19:13
quelle