2009-07-15 11 views
8

Se si dispone di un DataGridView associato a un DataView (someDataTable.DefaultView).Rimandare aggiornamento DataGridView durante la modifica del DataTable sottostante

.. e un numero di modifiche viene eseguito su righe nel DataTable sottostante dal codice.

È possibile posticipare l'aggiornamento di DataGridView finché non si decide di aver finito di modificare le righe?

Allo stato attuale, DataGridView viene aggiornato dopo ogni modifica, che, se non si richiede un feedback immediato, è inefficiente e un po 'fastidioso se si aggiornano più righe nel DataTable uno dopo l'altro.

risposta

15

Per poter sospendere temporaneamente l'associazione dei dati, è necessario inserire uno BindingSource tra il numero DataGridView e il numero DataView. Impostando la proprietà di BindingSource su false, le modifiche nella sorgente sottostante non vengono notificate allo DataGridView. È possibile trascinare & rilasciare un componente Bindingsource dalla casella degli strumenti nella vista di progettazione. Ho cercato di impostare le fonti di dati tramite il progettista, ma non ha funzionato, così ho fatto in codice:

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

Per sospendere l'associazione dati, è sufficiente impostare la proprietà RaiseListChangedEvents su false:

bindingSource1.RaiseListChangedEvents = false; 

per riprendere l'associazione di dati, è sufficiente impostare il RaiseListChangedEvents true e ripristinare le associazioni in modo che il display viene aggiornato:

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

risposta Nizza. Grazie. – xyz

Problemi correlati