public static void AddHandlerIfDelegateListDoesNotContainsIt(IVertex baseVertex, VertexChange _delegate) { if (baseVertex != null && !GeneralUtil.DoDelegateListContainDelegate(baseVertex.GetChangeDelegateInvocationList(), _delegate)) { baseVertex.Change += _delegate; } }
private static void RemoveVertexChangeListeners_ForVertex(IVertex Vertex, IVertex PlatformClassVertex, VertexChange action) { Delegate[] delegates = Vertex.GetChangeDelegateInvocationList(); if (delegates != null) { foreach (Delegate d in delegates) { if (d.Target is PlatformClassVertexChangeListener) { PlatformClassVertexChangeListener list = (PlatformClassVertexChangeListener)d.Target; if (list.PlatformClassVertex == PlatformClassVertex) { list.Change -= action; Vertex.Change -= list.Listener; } } } } }