Exemplo n.º 1
0
        /// <summary>
        /// Ends scalar editing mode.
        /// </summary>
        /// <returns><see langword="true"/> if scalar editing mode ended successfully, otherwise <see langword="false"/>.</returns>
        public bool EndEdit()
        {
            if (!IsEditing)
            {
                throw new InvalidOperationException(DiagnosticMessages._VerifyIsEditing);
            }

            if (Count == 0)
            {
                IsEditing = false;
                return(true);
            }

            if (!_owner.QueryEndEdit())
            {
                return(false);
            }

            _owner.SuspendInvalidateView();
            SuspendValueChangedNotification();
            for (int i = 0; i < Count; i++)
            {
                this[i].EndEdit();
            }
            IsEditing = false;
            _owner.OnEndEdit();
            ResumeValueChangedNotification();
            _owner.ResumeInvalidateView();
            return(true);
        }