Esempio n. 1
0
        private void OnAddWeakHandler(object sender, RoutedEventArgs e)
        {
            var handler = new WeakHandler();

            ClickEventManager.AddListener(NotifyButton, handler);
            weakHandlers.Add(handler);
        }
Esempio n. 2
0
        private IDisposable AddHandler <TSubscriber, TMessage>(TSubscriber subscriber, Action <TSubscriber, TMessage> handler, bool handleDerivedTypes)
            where TSubscriber : class
        {
            var weakHandler = new WeakHandler <TSubscriber, TMessage>(
                subscriber,
                handler,
                handleDerivedTypes);

            lock (_weakHandlers)
            {
                _weakHandlers.AddLast(weakHandler);
            }

            return(weakHandler);
        }
        static bool Invoke(WeakHandler wh, object sender, TEventArgs e)
        {
            if (wh.IsStatic)
            {
                wh.Handler(null, sender, e);
                return(true);
            }
            var target = wh.Target;

            if (target == null)
            {
                return(false);
            }
            wh.Handler(target, sender, e);
            return(true);
        }
            public void AddWeakHandler(TEventSource source, TEventHandler handler)
            {
                WeakHandler handlerSink = new WeakHandler(source, handler);

                _handlers.Add(handlerSink);
            }
 static bool Match(WeakHandler wh, Delegate d)
 {
     return(ReferenceEquals(wh.Target, d.Target) &&
            wh.Method.Equals(d.Method));
 }