DataGridView с пользовательским редактором ячеек не выводит пользовательское значение с первой попытки

#datagridview #editor #cell

Вопрос:

Я реализовал пользовательский редактор ячеек для своего представления DataGrid для одного столбца, который можно редактировать. Однако я заметил, что при первом редактировании любой ячейки значение не копируется в элемент, связанный с данными. Так что, похоже, ничего не случилось. Тем не менее, все работает хорошо после этой первоначальной попытки-напишите.

Вот пример. Поэтому я просто запустил программу и поместил «2» в колонку проблем.

введите описание изображения здесь

Но когда я покидаю ячейку, значение теряется:

введите описание изображения здесь

Но если я вернусь и запишу данные обратно, они прилипнут:

введите описание изображения здесь

Не имеет значения, какая ячейка редактируется первой, в первый раз она не будет работать ни с одной ячейкой. После первого раза любая ячейка будет работать.

Однако, если я помещу разрыв в пользовательский редактор, который будет поражен при чтении данных, как в GetEditingControlFormattedValue(), то это сработает.

Видя это, я попытался протестировать полностью скомпилированную версию программы, но проблема все равно возникает.

Я вызываю DataGridView.NotifyCurrentCellDirty() для события onLeave пользовательского редактора:

     protected override void OnLeave(EventArgs e)
    {
        base.OnLeave(e);

        this.EditingControlDataGridView.NotifyCurrentCellDirty(this.EditingControlValueChanged);
    }
 

Может быть, в этом и проблема, но я не знаю, куда еще позвонить NotifyCurrentCellDirty().