Me.BindingContext(myDS, "Measure").Position = Me.dgMeasurements.CurrentRowIndexit works for the first row in the parent table, but I moved to the next row in the parent table, .CurrentRowIndex does not match the correct position in the datagrid, because there is a relation between the parent & child table so eveytime the selected row in the parent table changed the number of rows in the datagrid changed according to the no. of rows in child table so evertime the datagrid .CurrentRowIndex will strart from "0".