public void MoveRowAfter(GridRow fromRow, GridRow toRow) { int toRowIndex = toRow.RowIndex; if (fromRow.RowIndex < toRowIndex) { toRowIndex -= 1; } foreach (GridColumn col in table.GetColumnIter()) { col.MoveRowAfter(fromRow, toRow); } rows.RemoveAt(fromRow.RowIndex); rows.Insert(toRowIndex, fromRow); UpdateRowIndex(fromRow, toRow); }