2009-07-15 32 views
8

bên dưới Nếu bạn có DataGridView được liên kết với một DataView (someDataTable.DefaultView).Trì hoãn cập nhật DataGridView khi chỉnh sửa DataTable

..và một số chỉnh sửa được thực hiện trên các hàng trong DataTable cơ bản từ mã.

Có thể trì hoãn việc cập nhật DataGridView cho đến khi bạn quyết định rằng bạn đã hoàn tất chỉnh sửa hàng không?

Vì vậy, DataGridView được cập nhật sau mỗi lần chỉnh sửa, nếu bạn không yêu cầu phản hồi tức thì, không hiệu quả và ít bị chói mắt nếu bạn đang cập nhật nhiều hàng trong bảng DataTable.

Trả lời

15

Để có thể tạm thời đình chỉ ràng buộc dữ liệu, bạn sẽ phải đặt BindingSource giữa DataGridViewDataView của mình. Bằng cách đặt thuộc tính RaiseListChangedEvents của BindingSource thành sai, các thay đổi trong nguồn cơ sở không được thông báo cho DataGridView. Bạn có thể kéo & thả thành phần Bindingsource từ hộp công cụ trong chế độ xem thiết kế. Tôi cố gắng để thiết lập các nguồn dữ liệu thông qua các nhà thiết kế nhưng nó đã không làm việc, vì vậy tôi đã làm nó trong mã:

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

Đình chỉ dữ liệu ràng buộc, chỉ cần đặt các RaiseListChangedEvents tài sản để sai:

bindingSource1.RaiseListChangedEvents = false; 

để tiếp tục dữ liệu ràng buộc, chỉ cần đặt các RaiseListChangedEvents true và thiết lập lại các cam kết ràng buộc để màn hình hiển thị được cập nhật:

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

Nice câu trả lời. Cảm ơn bạn. – xyz

Các vấn đề liên quan