DataGridView复制到堆栈

时间:2018-10-22 02:19:43

标签: c# datagridview undo

想知道是否有人可以帮助我解决这个问题。我正在处理的项目具有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();
        }

0 个答案:

没有答案