/// <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="T:System.ArgumentNullException">source must not be <c>null</c>.</exception> /// <exception cref="T:System.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 changedEventListener = propertyChangedListeners.LastOrDefault(l => { if (l.Source == source) { return(l.Handler == handler); } return(false); }); if (changedEventListener == null) { return; } propertyChangedListeners.Remove(changedEventListener); PropertyChangedEventManager.RemoveListener(source, changedEventListener, ""); }
/// <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="T:System.ArgumentNullException">source must not be <c>null</c>.</exception> /// <exception cref="T:System.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"); } var changedEventListener = new PropertyChangedEventListener(source, handler); propertyChangedListeners.Add(changedEventListener); PropertyChangedEventManager.AddListener(source, changedEventListener, ""); }
/// <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="T:System.ArgumentNullException">source must not be <c>null</c>.</exception> /// <exception cref="T:System.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"); } var changedEventListener = new PropertyChangedEventListener(source, handler); propertyChangedListeners.Add(changedEventListener); PropertyChangedEventManager.AddListener(source, changedEventListener, ""); }