コード例 #1
0
        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);
        }
コード例 #2
0
        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());
            }
        }