Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
            }
        }