我将DataGridView绑定到一个绑定源,数据源作为活动记录模型的列表:
BindingSource bs = new BindingSource();
bs.DataSource = _user.Addresses;
地址具有名为Actual的bool属性,而我的DataGridView具有CheckBoxColumn:
DataGridViewCheckBoxColumn c = new DataGridViewCheckBoxColumn(false);
c.Name = "actualColumn";
c.HeaderText = "Aktualny";
c.DataPropertyName = "Actual";
c.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
addressesDataGridView.Columns.Add(c);
数据库中的数据显示正确。
当我单击选中的复选框单元格并取消选中它然后转到保存按钮时,我的绑定源中的属性Actual不会被取消选中。
当我单击选中的复选框单元格并取消选中它并更改行选择,然后单击“保存”时,在bindingsource中可以看到按钮更改。
此问题是否存在解决方法?
答案 0 :(得分:2)
问题是数据网格没有更新基础数据源。
您可以尝试在保存功能中首先调用BindingSource.EndEdit。
您还可以尝试在绑定到控件的CurrencyManager上调用EndCurrentEdit。要访问它,您可以:
myCurrencyManager = (CurrencyManager)this.BindingContext[myTable];