2009-07-15 68 views
8

如果您有一個綁定到DataView(someDataTable.DefaultView)的DataGridView。編輯底層DataTable時推遲DataGridView更新

..並且從代碼對底層DataTable中的行執行了大量編輯。

是否可以推遲更新DataGridView,直到您決定完成編輯行爲止?

實際上,每次編輯後都會更新DataGridView,如果您不需要即時反饋,則DataGridView效率低下,並且在DataTable中依次更新多行時會產生一些視覺震動。

回答

15

爲了能夠暫時中止數據綁定,您必須在您的DataGridViewDataView之間放置BindingSource。通過將BindingSourceRaiseListChangedEvents屬性設置爲false,底層源的更改不會通知DataGridView。您可以在設計視圖中將&拖放到工具箱中的Bindingsource組件。我試圖建立通過設計師的數據來源,但它沒有工作,所以我做到了在代碼:

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

暫停數據綁定,只是RaiseListChangedEvents屬性設置爲false:

bindingSource1.RaiseListChangedEvents = false; 

要恢復數據綁定,只需設置RaiseListChangedEvents爲true,並重新綁定,因此更新顯示:

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

尼斯的答案。謝謝。 – xyz 2009-07-15 20:51:41

相關問題