2015-10-16 55 views
0

雖然有很多類似的問題被問過,但我沒有找到合適的答案:(如:Similar questionDataGridView.CellValueChanged沒有觸發數據綁定的DataGridView

DataGridView.Cellvalues變化每databounded源編程。我想跟蹤某些列的總和,但是當細胞具有焦點(不是區分它編程改變)DataGridView.CellValueChanged事件才適用。我不想使用RowPrePaint事件,或因業績原因CellPainting事件。

有任何合適的事件或方法?

+0

你試過了'DataSourceChanged '事件? – varocarbas

+0

是的,我試過DataSourceChanged事件沒有得到提出:( – JharPaat

+0

它肯定會在正確的條件下得到提升,但我們無法猜測您的確切條件。請發佈您的代碼的相關部分,描述您的意思是「每個數據源。編程」 – varocarbas

回答

0

我有一個類似的問題,並使用DataBindingComplete事件解決它。

對於僅使用某些列的應用程序,這應該會對您有好處,因爲我相信在數據綁定操作完成後它只會被調用一次。

您將需要通過按所需的DataGridViewBindingCompleteEventArgs顯然不具備的rowIndex和columnIndex屬性的電網做自己的迭代,但你可以做這樣的事情:

private void DataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) 
{ 
    var senderGrid = (DataGridView)sender; 

    foreach (DataGridViewRow row in senderGrid.Rows) 
    { 
     // Determine the bound data object for the current row 
     var currentRowObj = row.DataBoundItem; 

     // Access the data in a particular cell on this row 
     var cellToTotal = row.Cells["Column1"]; 

     etc 
    } 
}