/// <summary> /// Adds an <see cref="IItemEventHandler"/> to the ItemEventHandlerList /// </summary> public static ItemEventHandlerList operator+(ItemEventHandlerList list, IItemEventHandler h) { ItemEventHandlerList r = new ItemEventHandlerList(); r.Handlers.AddRange(list.Handlers); r.Handlers.Add(new WeakReference <IItemEventHandler>(h)); return(r); }
/// <summary> /// Removes an <see cref="IItemEventHandler"/> from the ItemEventHandlerList /// </summary> public static ItemEventHandlerList operator-(ItemEventHandlerList list, IItemEventHandler h) { ItemEventHandlerList r = new ItemEventHandlerList(); foreach (WeakReference <IItemEventHandler> wr in list.Handlers) { if (wr.Target != h) { r.Handlers.Add(wr); } } return(r); }