2014-09-29 5 views
0

Мое приложение имеет контроль привязки данных привязки. Когда кто-то меняет что-либо в ячейке, резервный источник данных изменяется. Когда пользователь сохраняет изменения, я в основном просто получить с помощью:Захват данных перед изменением в datagridview?

var changes = ((DataTable)this.bindingSource1.DataSource).GetChanges(DataRowState.Modified); 

С changes коллекции, я могу затем обновить соответствующие таблицы базы данных.

Теперь, однако, пользователь хочет, чтобы журнал содержал до И после данных. Я мог бы просто сделать копию источника данных и удержать его и сравнить то, что было изменено, а затем записать журнал с до и после. Но разве нет другого пути, который не потребует от меня хранить копию всего источника данных? Я бы хотел сохранить только до образ данных, который был фактически изменен, вместо всех предварительных изменений источника данных.

Я знаю, что есть событие, которое я мог бы использовать, срабатывает при изменении ячейки. Есть ли способ захватить исходные предварительно измененные данные, используя это событие? Я не могу думать о том, как, однако, поскольку событие только срабатывает, если ячейка изменена.

Сохранение всего источника данных кажется непрактичным, поэтому я надеюсь, что есть другой способ сделать это.

ответ

1
dgv.CurrentCellDirtyStateChanged += new EventHandler(dgv_CurrentCellDirtyStateChanged); 

    void dgv_CurrentCellDirtyStateChanged(object sender, EventArgs e) 
    { 
     //Work here, this is called before the cell change has been comitted 
    } 

Смотрите here для получения дополнительной информации об этом событии

+0

выглядит точно так же, как то, что мне было нужно. Спасибо! – Kevin

Смежные вопросы