private void ReturnListener() { this.listener.Changed -= this.HandleValueChanged; freeListeners.Add(this.listener); this.listener = null; }
private void Attach() { this.Detach(); if (this.target != null && this.binding != null) { this.listener = this.GetListener(); this.listener.Attach(this.target, this.binding); } }
public void ListenerChangedIsRaisedWhenDataContextPropertyChanges() { var myObject = new MyClass {Value = "Initial"}; var binding = new Binding("Value"); var element = new TextBlock {DataContext = myObject}; var currentState = string.Empty; var listener = new DependencyPropertyListener(); listener.Changed += ((s, e) => currentState = (string) e.EventArgs.NewValue); listener.Attach(element, binding); var initialState = currentState; myObject.Value = "NewValue"; var finalState = currentState; Assert.AreEqual("Initial", initialState); Assert.AreEqual("NewValue", finalState); }
private DependencyPropertyListener GetListener() { DependencyPropertyListener dependencyPropertyListener; if (freeListeners.Count != 0) { dependencyPropertyListener = freeListeners[freeListeners.Count - 1]; freeListeners.RemoveAt(freeListeners.Count - 1); return(dependencyPropertyListener); } else { dependencyPropertyListener = new DependencyPropertyListener(); } dependencyPropertyListener.Changed += this.HandleValueChanged; return(dependencyPropertyListener); }
private void Attach() { this.Detach(); if (this.target != null && this.binding != null) { this.listener = this.GetListener(); this.listener.Attach(this.target, this.binding); } }
private void ReturnListener() { this.listener.Changed -= this.HandleValueChanged; freeListeners.Add(this.listener); this.listener = null; }
private DependencyPropertyListener GetListener() { DependencyPropertyListener dependencyPropertyListener; if (freeListeners.Count != 0) { dependencyPropertyListener = freeListeners[freeListeners.Count - 1]; freeListeners.RemoveAt(freeListeners.Count - 1); return dependencyPropertyListener; } else { dependencyPropertyListener = new DependencyPropertyListener(); } dependencyPropertyListener.Changed += this.HandleValueChanged; return dependencyPropertyListener; }