public void SubscribeToIconEvents(IconEventHandler newObserver) { if (!IsObserverIconAlreadyInList(newObserver)) { m_iconEvents += new IconEventHandler(newObserver); m_iconEvents.Invoke(m_icon); } }
private bool IsObserverIconAlreadyInList(IconEventHandler newObserver) { if (m_iconEvents != null) { foreach (var existingHandler in m_iconEvents.GetInvocationList()) { if (Delegate.Equals(existingHandler, newObserver)) //If it doesn't work use : if(objA.Method.Name == objB.Method.Name && objA.Target.GetType().FullName == objB.Target.GetType().FullName) OR Delegate.Equals(objA, objB) { return(true); } } } return(false); }