/// <summary> /// Register the INavigableObserver as a WeakReference. /// </summary> /// <param name="observer">The INavigableObserver.</param> /// <returns>The INavigableObserver as a WeakReference.</returns> public WeakReference <INavigableObserver> RegisterObserver(INavigableObserver observer) { var weakObserver = new WeakReference <INavigableObserver>(observer); observers.Add(weakObserver); return(weakObserver); }
/// <summary> /// Unregister the INavigableObserver. /// </summary> /// <param name="observer">The INavigableObserver.</param> public void UnregisterObserver(INavigableObserver observer) { var obs = observers.Where(x => { x.TryGetTarget(out INavigableObserver target); return(target.Equals(observer)); }) .SingleOrDefault(); if (obs != null) { observers.Remove(obs); } }