/// <summary> /// Commits the current entity editing and exits the editing mode. /// </summary> /// <param name="dataItem">The entity being edited</param> /// <returns>True if a commit operation was invoked.</returns> public bool EndEdit(object dataItem) { IDataGridEditableCollectionView editableCollectionView = EditableCollectionView; if (editableCollectionView != null) { // IEditableCollectionView.CommitEdit can potentially change currency. If it does, // we don't want to attempt a second commit inside our CurrentChanging event handler. _owner.NoCurrentCellChangeCount++; CommittingEdit = true; try { editableCollectionView.CommitEdit(); } finally { _owner.NoCurrentCellChangeCount--; CommittingEdit = false; } return(true); } if (dataItem is IEditableObject editableDataItem) { editableDataItem.EndEdit(); } return(true); }
/// <summary> /// Puts the entity into editing mode if possible /// </summary> /// <param name="dataItem">The entity to edit</param> /// <returns>True if editing was started</returns> public bool BeginEdit(object dataItem) { if (dataItem == null) { return(false); } IDataGridEditableCollectionView editableCollectionView = EditableCollectionView; if (editableCollectionView != null) { if (editableCollectionView.IsEditingItem && (dataItem == editableCollectionView.CurrentEditItem)) { return(true); } else { editableCollectionView.EditItem(dataItem); return(editableCollectionView.IsEditingItem); } } if (dataItem is IEditableObject editableDataItem) { editableDataItem.BeginEdit(); return(true); } return(true); }
/// <summary> /// Cancels the current entity editing and exits the editing mode. /// </summary> /// <param name="dataItem">The entity being edited</param> /// <returns>True if a cancellation operation was invoked.</returns> public bool CancelEdit(object dataItem) { IDataGridEditableCollectionView editableCollectionView = EditableCollectionView; if (editableCollectionView != null) { if (editableCollectionView.CanCancelEdit) { editableCollectionView.CancelEdit(); return(true); } return(false); } if (dataItem is IEditableObject editableDataItem) { editableDataItem.CancelEdit(); return(true); } return(true); }