Exemple #1
0
        /// <summary>
        /// Adds a weak event listener for a PropertyChanged event.
        /// </summary>
        /// <param name="source">The source of the event.</param>
        /// <param name="handler">The event handler.</param>
        /// <exception cref="ArgumentNullException">source must not be <c>null</c>.</exception>
        /// <exception cref="ArgumentNullException">handler must not be <c>null</c>.</exception>
        protected void AddWeakEventListener(INotifyPropertyChanged source, PropertyChangedEventHandler handler)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            PropertyChangedEventListener listener = propertyChangedListeners.LastOrDefault((l) => l.Source == source && l.Handler == handler);

            if (listener == null)
            {
                listener = new PropertyChangedEventListener(source, handler);
            }
            else
            {
                return;
            }

            propertyChangedListeners.Add(listener);
            PropertyChangedEventManager.AddListener(source, listener, string.Empty);
        }
Exemple #2
0
        /// <summary>
        /// Removes the weak event listener for a PropertyChanged event.
        /// </summary>
        /// <param name="source">The source of the event.</param>
        /// <param name="handler">The event handler.</param>
        /// <exception cref="ArgumentNullException">source must not be <c>null</c>.</exception>
        /// <exception cref="ArgumentNullException">handler must not be <c>null</c>.</exception>
        protected void RemoveWeakEventListener(INotifyPropertyChanged source, PropertyChangedEventHandler handler)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            PropertyChangedEventListener listener = propertyChangedListeners.LastOrDefault((l) => l.Source == source && l.Handler == handler);

            if (listener != null)
            {
                propertyChangedListeners.Remove(listener);
                PropertyChangedEventManager.RemoveListener(source, listener, string.Empty);
            }
        }
Exemple #3
0
        /// <summary>
        /// Adds a weak event listener for a PropertyChanged event.
        /// </summary>
        /// <param name="source">The source of the event.</param>
        /// <param name="handler">The event handler.</param>
        /// <exception cref="ArgumentNullException">source must not be <c>null</c>.</exception>
        /// <exception cref="ArgumentNullException">handler must not be <c>null</c>.</exception>
        protected void AddWeakEventListener( INotifyPropertyChanged source, PropertyChangedEventHandler handler )
        {
            if ( source == null )
                throw new ArgumentNullException( "source" );

            if ( handler == null )
                throw new ArgumentNullException( "handler" );

            PropertyChangedEventListener listener = propertyChangedListeners.LastOrDefault( ( l ) => l.Source == source && l.Handler == handler );

            if ( listener == null )
                listener = new PropertyChangedEventListener( source, handler );
            else
                return;

            propertyChangedListeners.Add( listener );
            PropertyChangedEventManager.AddListener( source, listener, string.Empty );
        }