private void Attach() { this.Detach(); if ((this.target != null) && (this.binding != null)) { this.listener = this.GetListener(); this.listener.Attach(this.target, this.binding); } }
private DependencyPropertyListener GetListener() { DependencyPropertyListener listener; if (FreeListeners.Count != 0) { listener = FreeListeners[FreeListeners.Count - 1]; FreeListeners.RemoveAt(FreeListeners.Count - 1); return listener; } listener = new DependencyPropertyListener(); listener.Changed += new EventHandler<BindingChangedEventArgs>(this.HandleValueChanged); return listener; }
private void ReturnListener() { this.listener.Changed -= new EventHandler<BindingChangedEventArgs>(this.HandleValueChanged); FreeListeners.Add(this.listener); this.listener = null; }