private void ValidateListener(IVisualStateListener listener) { if (string.Equals(VisualStateName, listener.VisualStateName) == false) { throw new ArgumentOutOfRangeException(nameof(listener)); } }
public void DetachListener(IVisualStateListener listener) { ValidateListener(listener); _listeners.Remove(listener); if (_isActive) { listener.LeaveState(false); } }
public void AttachListener(IVisualStateListener listener) { ValidateListener(listener); _listeners.Add(listener); if (_isActive) { listener.EnterState(false); } }
public WeakVisualStateListener(IVisualStateListener listener) { VisualStateName = listener.VisualStateName; _weakReference = new WeakReference(listener); }
public void DetachListener(IVisualStateListener listener) { EnsureLayoutUpdatedHandler(); GetListenerCollection(listener.VisualStateName, false)?.DetachListener(listener); }
public void AttachListener(IVisualStateListener listener) { EnsureLayoutUpdatedHandler(); GetListenerCollection(listener.VisualStateName, true).AttachListener(listener); }
private static bool IsAliveListener(IVisualStateListener listener) { var weakListener = listener as IWeakReference; return(weakListener == null || weakListener.IsAlive); }