我有一个绑定到对象列表的DataGridView.它有一些用户可以编辑的列.某些输入不允许作为一个整体的行.如果用户在某个单元格中输入无效输入,我该如何回滚.我尝试使用RowValidating事件处理程序,但在更改单元格值后未调用它.即使我实现CellValueChanged,我仍然无法回滚更改.......不知道如何实现这一目标
存在数据绑定时,对我来说它适用于:
myBindingSource.CancelEdit(); myDataGridView.RefreshEdit();
编辑完成并验证更改后,您可以执行以下操作:
DataTable dt = this.dataGridView.DataSource as DataTable; dt.RejectChanges();
来自MSDN:
调用DataTable.RejectChanges方法时,仍处于编辑模式的任何行都将取消其编辑.删除新行.已修改和已删除的行将返回其原始状态(DataRowState.Unchanged).