我有一个带有列(组合框列)的数据网格视图。已实现以下功能。
选择几行(单击最左边的行标题并拖动)。
以编程方式将值设置为某种值(请参阅下文)。所有选定的行都会更改。
foreach (DataGridViewRow item in dgv.SelectedRows)
{
item.Cells["cbxxxxx"].Value = p;
}
dgv.EndEdit();
单击保存按钮以保存更改。但是,
(dgv.DataSource as DataTable).GetChanges()
中不包括最后一行。更改后的数据表的计数始终比所选行少一。缺少的行是最后一行(带有黑色三角形)。如何解决问题?
最佳答案
最后一行可能仍是活动行,因此您需要通过BindingContext结束编辑:
foreach (DataGridViewRow item in dgv.SelectedRows) {
item.Cells["cbxxxxx"].Value = p;
}
this.BindingContext[dgv.DataSource].EndCurrentEdit();
关于c# - 以编程方式更新所选行会错过dgv.DataSource.GetChanges()中的最后一行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26556024/