private void notify() { if (ListChanged != null && ListChanged.GetInvocationList().Any()) { ListChanged(); } }
public new void Add(T item) { base.Add(item); changed?.Invoke(); if (ListChanged != null && ListChanged.GetInvocationList().Any()) { ListChanged(); } }
public virtual void ReleaseListeners(object target) { if (ListChanged != null) { foreach (Delegate d in ListChanged.GetInvocationList()) { if (target == null || d.Target == target) { ListChanged -= (ListChangedEventHandler)d; } } } if (LoadFinished != null) { foreach (Delegate d in LoadFinished.GetInvocationList()) { if (target == null || d.Target == target) { LoadFinished -= (LoadFinishedEventHandler)d; } } } if (ListItemChanged != null) { foreach (Delegate d in ListItemChanged.GetInvocationList()) { if (target == null || d.Target == target) { ListItemChanged -= (ListItemChangedEventHandler)d; } } } foreach (T ho in this) { ho.ReleaseListeners(target); } }
public void AddHandlersWithLoad(ListChangedEventHandler listChangedEventHandler, LoadFinishedEventHandler loadFinishedEventHandler, ListItemChangedEventHandler itemChangedEventHandler) { #if (CHATTY_DEBUG) string msg = "*** HRA LIST AddHandlersWithLoad on : " + this.ToString() + System.Environment.NewLine; if (listChangedEventHandler != null) { msg += "By: " + listChangedEventHandler.Target.ToString(); } else if (loadFinishedEventHandler != null) { msg += "By: " + loadFinishedEventHandler.Target.ToString(); } else if (itemChangedEventHandler != null) { msg += "By: " + itemChangedEventHandler.Target.ToString(); } Logger.Instance.DebugToLog(msg); #endif if (listChangedEventHandler != null) { if (ListChanged == null) { ListChanged += listChangedEventHandler; } else { bool ok = true; foreach (Delegate d in ListChanged.GetInvocationList()) { if (d.Target == listChangedEventHandler.Target) { ok = false; } } if (ok) { ListChanged += listChangedEventHandler; } } } if (loadFinishedEventHandler != null) { if (LoadFinished == null) { LoadFinished += loadFinishedEventHandler; } else { bool ok = true; foreach (Delegate d in LoadFinished.GetInvocationList()) { if (d.Target == loadFinishedEventHandler.Target) { ok = false; } } if (ok) { LoadFinished += loadFinishedEventHandler; } } } if (itemChangedEventHandler != null) { if (ListItemChanged == null) { ListItemChanged += itemChangedEventHandler; } else { bool ok = true; foreach (Delegate d in ListItemChanged.GetInvocationList()) { if (d.Target == loadFinishedEventHandler.Target) { ok = false; } } if (ok) { ListItemChanged += itemChangedEventHandler; } } } if (loaded) { if (loadFinishedEventHandler != null) { HraListLoadedEventArgs args = new HraListLoadedEventArgs(); args.sender = this; args.workerArgs = new RunWorkerCompletedEventArgs(this, null, false); loadFinishedEventHandler.Invoke(args); } } else { LoadList(); } }