我有一个带有列(组合框列)的数据网格视图。已实施以下功能。
以编程方式将值设置为某个值(请参阅下文)。所有选定的行都会更改。
foreach (DataGridViewRow item in dgv.SelectedRows)
{
item.Cells["cbxxxxx"].Value = p;
}
dgv.EndEdit();
单击“保存”按钮以保存更改。但是,(dgv.DataSource as DataTable).GetChanges()
中排除了最后一行。更改的数据表的计数始终比所选行少一个。丢失的行是最后一行(带有黑色三角形)。
如何解决问题?
答案 0 :(得分:3)
最后一行可能仍然是活动行,因此您需要通过BindingContext结束编辑:
foreach (DataGridViewRow item in dgv.SelectedRows) {
item.Cells["cbxxxxx"].Value = p;
}
this.BindingContext[dgv.DataSource].EndCurrentEdit();