2009-07-15 11 views
8

Jeśli masz DataGridView, który jest powiązany z DataView (someDataTable.DefaultView).Odroczenie aktualizacji DataGridView podczas edycji podstawowego DataTable

..i wiele zmian jest wykonywanych w wierszach w bazowym DataTable z kodu.

Czy można odroczyć aktualizację DataGridView, dopóki nie zostanie podjęta decyzja o zakończeniu edycji wierszy?

W obecnej wersji DataGridView jest aktualizowany po każdej edycji, która, jeśli nie wymaga natychmiastowej informacji zwrotnej, jest nieefektywna i lekko drażniąca wizualnie, jeśli aktualizujesz wiele wierszy tabeli DataTable jeden po drugim.

Odpowiedz

15

Aby móc tymczasowo zawiesić wiązanie danych, musisz umieścić BindingSource między swoim DataGridView a swoim DataView. Ustawiając wartość RaiseListChangedEvents właściwości BindingSource na wartość false, zmiany w źródle źródłowym nie są zgłaszane do DataGridView. Możesz przeciągnąć & upuścić element Bindingsource z przybornika w widoku projektu. Próbowałem skonfigurować źródła danych przy użyciu projektanta, ale to nie działa, więc zrobiłem to w kodzie:

bindingSource1.DataSource = someDataTable.DefaultView; 
dataGridView1.DataSource = bindingSource1; 

do zawieszenia wiązania danych, po prostu ustawić właściwość RaiseListChangedEvents false:

bindingSource1.RaiseListChangedEvents = false; 

Aby wznowić wiązania danych, wystarczy ustawić RaiseListChangedEvents true i zresetować powiązań więc wyświetlacz jest aktualizowany:

bindingSource1.RaiseListChangedEvents = true; 
bindingSource1.ResetBindings(false); 
+0

Nicea odpowiedź. Dziękuję Ci. – xyz

Powiązane problemy