You can subscribe to the DataView''s ListChanged event to catch changes in the DataView.
In the event handler, you can get the row position of teh changed row in the DataView and then map that to the grid row.
private void DefaultView_ListChanged(object sender, ListChangedEventArgs e)
{
if(e.ListChangedType == ListChangedType.ItemChanged)
{
GridRecord r = this.gridGroupingControl1.Table.UnsortedRecords[e.NewIndex] as GridRecord;
int gridRowIndex = this.gridGroupingControl1.Table.DisplayElements.IndexOf(r);
Console.WriteLine(gridRowIndex.ToString());
}
}