2013-11-04 81 views
0

我正在一個項目中工作,我需要在用戶單擊一個按鈕時驗證一個指定列中的一組單元格。我的驗證只能在該方法內部調用,而不是在單元格值發生變化時或其他情況下,我重複我需要驗證僅在此方法內部的單元格,而不是外部。驗證網格中的單元格

事件CustomDrawCell,CellStyleChange,ValidateRows等他們自動調用自己,這不是我在這個問題中的目的。我需要打電話時需要打電話,而不是在其他時間。

我嘗試使用StyleFormatCondition,但給了我的問題,因爲它適用於列自身而不是指定的單元格。

我的驗證非常簡單,我需要恢復單元格值執行與其他值的比較,然後繪製單元格的背景顏色,如果比較返回true。

例如:

if (Math.Abs(cellValue- value1 - value2) > EPSILON) 
{ 
    // paint the background color of the cell 
} 
else 
{ 
    // remains equal 
} 

將是有益的,如果有人有一些想法。

回答

0

例如,您可以將一個類型爲Boolean的額外列添加到您的GridView.DataSource,併爲其命名 - 「已驗證」。
然後添加到您的列StyleFormatCondition,其表達式如[Validated]

,改變你的方法是這樣的:

void YourMethod(GridCell[] groupOfCells) 
{ 
    foreach (GridCell gridCell in groupOfCells) 
    { 
     bool validated = <Your validation condition goes here>; 
     gridView1.SetRowCellValue(gridCell.RowHandle, "Validated", validated); 
    } 
}