GridViewEventResult IGridViewEventListener.PreProcessEvent( GridViewEvent eventData) { if (eventData.Info.Id != KnownEvents.CurrentChanged) { return((GridViewEventResult)null); } if (eventData.Originator is RadDataView <GridViewRowInfo> ) { if (this.IsInEditMode) { return(new GridViewEventResult(true, true)); } return((GridViewEventResult)null); } PositionChangingEventArgs args = new PositionChangingEventArgs(eventData.Arguments[0] as GridViewRowInfo, eventData.Arguments[1] as GridViewColumn); this.OnPositionChanging(args); if (args.Cancel) { return(new GridViewEventResult(false, true)); } return((GridViewEventResult)null); }
protected virtual void OnPositionChanging(PositionChangingEventArgs args) { GridViewRowInfo currentRow = this.gridViewElement.Template.CurrentRow; GridViewColumn currentColumn = currentRow?.ViewTemplate.CurrentColumn; this.oldRowIsNewRow = false; if (this.IsInEditMode) { if (!this.endEditCore) { args.Cancel = !this.CloseEditor(); } this.wasInEditMode = this.GridViewElement.BeginEditMode != RadGridViewBeginEditMode.BeginEditProgrammatically; } else { object oldValue = currentRow == null || currentColumn == null ? (object)null : currentRow[currentColumn]; object newValue = oldValue; if (this.RaiseCellValidatingEvent(currentRow, currentColumn, newValue, oldValue)) { args.Cancel = true; return; } this.RaiseCellValidatedEvent(currentRow, currentColumn, newValue); } if (!args.Cancel && args.Row != currentRow) { args.Cancel = !this.FinishEditingOperation(); this.oldRowIsNewRow = currentRow is GridViewNewRowInfo; } if (!args.Cancel) { return; } this.wasInEditMode = false; }