EventArgs class to be passed as the second parameter of a Profile.Changing event handler.
This class provides all the information relevant to the change about to be made to the Profile. Besides the properties of ProfileChangedArgs, it adds the Cancel property which allows the event handler to prevent the change from happening.
Inheritance: ProfileChangedArgs
Ejemplo n.º 1
0
        /// <summary>
        ///   Raises either the Changing or Changed event. </summary>
        /// <param name="changing">
        ///   If true, the Changing event is raised otherwise it's Changed. </param>
        /// <param name="changeType">
        ///   The type of change being made. </param>
        /// <param name="section">
        ///   The name of the section that was involved in the change or null if not applicable. </param>
        /// <param name="entry">
        ///   The name of the entry that was involved in the change or null if not applicable. 
        ///   If changeType is equal to Other, entry is the name of the property involved in the change.</param>
        /// <param name="value">
        ///   The value that was changed or null if not applicable. </param>
        /// <returns>
        ///   The return value is based on the event raised.  If the Changing event was raised, 
        ///   the return value is the opposite of ProfileChangingArgs.Cancel; otherwise it's true.</returns>
        /// <remarks>
        ///   This method may be used by derived classes as a convenient alternative to calling 
        ///   OnChanging and OnChanged.  For example, a typical call to OnChanging would require
        ///   four lines of code, which this method reduces to two. </remarks>
        /// <seealso cref="Changing" />
        /// <seealso cref="Changed" />
        /// <seealso cref="OnChanging" />
        /// <seealso cref="OnChanged" />
        protected bool RaiseChangeEvent(bool changing, ProfileChangeType changeType, string section, string entry, object value)
        {
            if (changing)
            {
                // Don't even bother if there are no handlers.
                if (Changing == null)
                    return true;

                ProfileChangingArgs e = new ProfileChangingArgs(changeType, section, entry, value);
                OnChanging(e);
                return !e.Cancel;
            }

            // Don't even bother if there are no handlers.
            if (Changed != null)
                OnChanged(new ProfileChangedArgs(changeType, section, entry, value));
            return true;
        }
Ejemplo n.º 2
0
        /// <summary>
        ///   Raises the Changing event. </summary>
        /// <param name="e">
        ///   The arguments object associated with the Changing event. </param>
        /// <remarks>
        ///   This method should be invoked prior to making a change to the profile so that the
        ///   Changing event is raised, giving a chance to the handlers to prevent the change from
        ///   happening (by setting e.Cancel to true). This method calls each individual handler 
        ///   associated with the Changing event and checks the resulting e.Cancel flag.  
        ///   If it's true, it stops and does not call of any remaining handlers since the change 
        ///   needs to be prevented anyway. </remarks>
        /// <seealso cref="Changing" />
        /// <seealso cref="OnChanged" />
        protected virtual void OnChanging(ProfileChangingArgs e)
        {
            if (Changing == null)
                return;

            foreach (ProfileChangingHandler handler in Changing.GetInvocationList())
            {
                handler(this, e);

                // If a particular handler cancels the event, stop
                if (e.Cancel)
                    break;
            }
        }