2014-09-29 25 views
0

我的應用程序有一個databound gridview控件。當某人更改單元格中的任何內容時,後備數據源將發生更改。當用戶保存的變化,我基本上剛剛開始使用:在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 2014-09-29 19:57:25

相關問題