private void OnAddWeakHandler(object sender, RoutedEventArgs e) { var handler = new WeakHandler(); ClickEventManager.AddListener(NotifyButton, handler); weakHandlers.Add(handler); }
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)); }