public void Dispose() { var listener = _eventListener; var weakItem = _weakItem; if (listener != null && !weakItem.IsEmpty) { _eventListener = null; _weakItem = WeakEventListenerWrapper.Empty; listener.Remove(weakItem, _propertyName); } }
private static WeakPropertyChangedListener CreateWeakPropertyListener(INotifyPropertyChanged propertyChanged, object state) { var listener = new WeakPropertyChangedListener(propertyChanged); propertyChanged.PropertyChanged += listener.Handle; return listener; }
private static WeakPropertyChangedListener UpdateSourceEvent(INotifyPropertyChanged item, Func<INotifyPropertyChanged, object, WeakPropertyChangedListener> addValue, WeakPropertyChangedListener currentValue, object state) { var array = (object[])state; var weakItem = (WeakEventListenerWrapper)array[1]; var path = (string)array[2]; array[3] = currentValue.AddInternal(weakItem, path); return currentValue; }
public Unsubscriber(WeakPropertyChangedListener eventListener, WeakEventListenerWrapper weakItem) { _eventListener = eventListener; _weakItem = weakItem; }
public Unsubscriber(WeakPropertyChangedListener eventListener, WeakEventListenerWrapper weakItem, string propertyName) { _eventListener = eventListener; _weakItem = weakItem; _propertyName = propertyName; }