2010-01-12 137 views
2

我有一个绑定到一个BindingSource的与数据源作为活动记录模型的列表的DataGridView:绑定DataGridViewCheckBoxColumn没有更新绑定源

BindingSource bs = new BindingSource(); 
    bs.DataSource = _user.Addresses; 

地址布尔属性命名的实际,和我的DataGridView有CheckBoxColumn:

DataGridViewCheckBoxColumn c = new DataGridViewCheckBoxColumn(false); 
    c.Name = "actualColumn"; 
    c.HeaderText = "Aktualny"; 
    c.DataPropertyName = "Actual"; 
    c.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader; 
    addressesDataGridView.Columns.Add(c); 

正确显示来自数据库的数据。

当我点击选中的复选框单元格,并取消选中它,然后去保存按钮,属性实际在我的bindingsource不是没有选中。

当我点击选中的复选框单元格并取消选中它并更改行选择,然后单击保存时,按钮更改在绑定源中可见。

此问题是否存在解决方法?

回答

2

问题是数据网格没有更新基础数据源。

您可以尝试调用BindingSource.EndEdit作为保存功能的第一件事。

您也可以尝试在绑定到控件的CurrencyManager上调用EndCurrentEdit。要访问它,你这样做:

myCurrencyManager = (CurrencyManager)this.BindingContext[myTable];

+1

没有你的建议的工作,但你鼓舞了我(为+1 :),谢谢)出发,按照上保存功能的榜首位工作: addressesDataGridView.EndEdit() – 2010-01-12 19:56:01