protected sealed override void OpenEdit(RowManager rowManager) { Debug.Assert(rowManager == RowManager); KeepInitialInputElement(rowManager); if (rowManager.VirtualRow != null) { _insertingRow = rowManager.VirtualRow; _insertingRow.DataRow = DataSet.BeginAdd(); } else { _insertingRow = new RowPresenter(rowManager, DataSet.BeginAdd()); } _insertingRow.RawIndex = InsertingRowRawIndex; if (rowManager.VirtualRowPlacement == VirtualRowPlacement.Head) { rowManager.VirtualRow = new RowPresenter(rowManager, 0); } else if (rowManager.VirtualRowPlacement == VirtualRowPlacement.Tail) { rowManager.VirtualRow = new RowPresenter(rowManager, -1); } else if (rowManager.VirtualRow != null) { rowManager.VirtualRow = null; } rowManager.Editing = this; rowManager.OnRowsChanged(); rowManager.SetCurrentRow(_insertingRow, false); }