Here is some code to try. There are 2 cases to consider. One, the cell that was just changed and two, the other cells in the row.
private void gridGroupingControl1_TableControlCurrentCellValidating(object sender, GridTableControlCancelEventArgs e)
{
GridCurrentCell cc = e.TableControl.CurrentCell;
GridTableCellStyleInfo style = e.TableControl.Model[cc.RowIndex, cc.ColIndex] as GridTableCellStyleInfo;
if(style.TableCellIdentity.TableCellType == GridTableCellType.AddNewRecordFieldCell)
{
//on a new record
GridRecordRow newRec = style.TableCellIdentity.DisplayElement as GridRecordRow;
foreach(GridColumnDescriptor cd in style.TableCellIdentity.Table.TableDescriptor.Columns)
{
if(cd.MappingName == style.TableCellIdentity.Column.MappingName)
{//active cell Console.WriteLine("{0}=''{1}''", cd.MappingName, cc.Renderer.ControlText);
}
else
if (newRec.GetData() != null)
{//other cells
DataRowView drv = newRec.GetData() as DataRowView;
if(drv != null)
Console.WriteLine("{0}=''{1}''", cd.MappingName, drv[cd.MappingName]);
else
Console.WriteLine("{0}=''null''", cd.MappingName);
}
}
Console.WriteLine(" ");
}
}