weakeventsource weakeventsource Code snippet for an automatically implemented a WeakEventSource implementation. Beat Kiener Expansion
eventname The name of the event w My eventargs Type of EventArgs EventArgs source Type of the event source object eventhandler Event handler delegate EventHandler { protected override WeakEventListenerBase CreateWeakEventListener($source$ eventObject) { var weakListener = new WeakEventListener<$eventname$WeakEventSource, $source$, $eventargs$>(this, eventObject); weakListener.OnDetachAction = (listener, source) => { source.$eventname$ -= listener.OnEvent; }; weakListener.OnEventAction = (instance, source, e) => { // fire event if (instance.$eventname$ != null) instance.$eventname$(source, e); }; eventObject.$eventname$ += weakListener.OnEvent; return weakListener; } public event $eventhandler$ $eventname$; } ]]>