DataGridView Копировать в стек - PullRequest
       36

DataGridView Копировать в стек

0 голосов
/ 22 октября 2018

Интересно, кто-нибудь может мне помочь с этим.Проект, над которым я работаю, имеет сетку данных и функцию отмены.В настоящее время мой код отмены работает со всеми остальными функциональными возможностями, кроме этого сценария.Когда я нахожусь в последней строке таблицы данных и редактирую первую ячейку (индекс 0), это делает копию данных корректной.То же самое, когда я редактирую следующую ячейку (индекс 1).Но по какой-то причине изменение не происходит, когда таблица данных копируется в стек, пока строка не будет полностью зафиксирована и не будет добавлена ​​новая строка., Даже если отдельные ячейки зафиксированы.Я проверил с IsCurrentCellDirty, и он оказался ложным.Когда уже исправленная строка имеет отредактированную ячейку, она делает копию, как задумано.Это из-за самого элемента управления, или есть ли способ сделать изменения в представлении сетки данных в таблице данных, с которой он связан после редактирования каждой ячейки?Спасибо за любую помощь.

    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();
        }
...