public void RemoveConnector(Connector connector) { Node nodea = connector.NodeA; Node nodeb = connector.NodeB; Connectors.Remove(connector); //удаление из отрисовки ConnectorsToDraw.Remove(connector); nodea.Connections.Remove(nodeb); //отвязка соединителя nodeb.Connections.Remove(nodea); }
public void RemoveElement(Element element) { Node nodea = element.NodeA; Node nodeb = element.NodeB; if (element is Reohord) { Reohord reohord = element as Reohord; Node nodec = reohord.NodeC; RemoveConnector(reohord.ResistorAC); RemoveConnector(reohord.ResistorBC); Connectors.Remove(reohord); ConnectorsToDraw.Remove(reohord); Nodes.Remove(nodec); while (nodec.Connections.Count > 0) { RemoveConnector(nodec.Connections.Values.First()); } } else { RemoveConnector(element); } Nodes.Remove(nodea); //удаление пинов из отрисовки Nodes.Remove(nodeb); while (nodea.Connections.Count > 0) //удаление соединителей, связанных с нодами { RemoveConnector(nodea.Connections.Values.First()); } while (nodeb.Connections.Count > 0) { RemoveConnector(nodeb.Connections.Values.First()); } }