2013-11-04 73 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); 
    } 
}