コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }