想知道是否有人可以帮助我解决这个问题。我正在处理的项目具有datagridview和撤消功能。目前,除这种情况外,我的撤消代码可与我拥有的所有其他功能一起使用。当我位于datagridview的最后一行并编辑第一个单元格(索引0)时,它将正确地复制datatable。编辑下一个单元格(索引1)时相同。但是无论出于什么原因,即使将数据表复制到堆栈中,也要等到该行完全提交并添加新行之后,更改才会发生,即使单个单元格已提交也是如此。我用IsCurrentCellDirty进行了测试,结果是错误的。在已提交的行中编辑了单元格后,将按预期进行复制。是因为控件本身,还是有办法让datagridview在每个单元格编辑后将更改提交到绑定到的数据表?感谢您的帮助。
DataTable datatable = new DataTable();
Stack<DataTable> datatableStack = new Stack<DataTable>();
private void dataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
datatableStack.Push(datatable.Copy());
}
public void Undo()
{
if (datatableStack.Count != 0)
{
datatable= datatableStack.Peek();
dataGridView.DataSource = datatable;
datatableStack.Pop();
}