2011-06-24 30 views
6

Tôi đã có một BindingList được ràng buộc làm nguồn dữ liệu của một DataGridView; một trong các thuộc tính TSource được liên kết với một DataGridViewCheckBoxColumn, nhưng nguồn dữ liệu được cập nhật không khi một nhấp chuột vào hộp kiểm xuất hiện, nhưng khi tiêu điểm trên hộp kiểm bị mất.DataGridViewCheckBoxColumn: cách cập nhật DataSource bị ràng buộc trên thuộc tính thay đổi thay vì xác thực

Tôi biết rằng điều gì đó tương tự xảy ra trên một tiêu chuẩn WindowsForms ràng buộc khi DataSourceUpdateMode là "OnValidation" thay vì "OnPropertyChanged", nhưng làm thế nào tôi có thể có kết quả tương tự với một DataGridViewCheckBoxColumn?

Cột được xác định như sau:

  DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn(); 
      column.DataPropertyName = "MyProperty"; 
      column.HeaderText = "Title"; 

      dataGridView.Columns.Add(column); 

Trả lời

9

Bạn có thể làm điều này bằng cách xử lý các sự kiện CurrentCellDirtyStateChanged của DataGridView.

void dataGridView1_CurrentCellDirtyStateChanged(object sender,EventArgs e) 
{ 
    if (dataGridView1.IsCurrentCellDirty) 
    { 
     dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); 
    } 
} 
+0

Nó hoạt động, cảm ơn. – Notoriousxl

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