public void CleanUpBeforeDelete(ViewModel view_model) { Plug inp = m_in; Plug outp = m_out; var conns = inp.GetConnections(); foreach (var conn in inp.GetConnections()) { conn.StartPlug.IsSelected = false; conn.EndPlug.IsSelected = false; view_model.Connections.Remove(conn); } conns = outp.GetConnections(); foreach (var conn in conns) { conn.StartPlug.IsSelected = false; conn.EndPlug.IsSelected = false; view_model.Connections.Remove(conn); } }
internal void moveRelative(int deltaX, int deltaY) { int currX = (int)Canvas.GetLeft(this); int currY = (int)Canvas.GetTop(this); Canvas.SetLeft(this, currX + deltaX); Canvas.SetTop(this, currY + deltaY); //need to update plugs if there Plug inp = m_in; Plug outp = m_out; var conns = inp.GetConnections(); if (conns.Count() != 0) { Point pnt = new Point(inp.X + currX + 10, inp.Y + currY + 10); foreach (var conn in conns) { if (conn.StartPlug == inp) { conn.StartPoint = pnt; } else { conn.EndPoint = pnt; } } } conns = outp.GetConnections(); if (conns.Count() != 0) { Point pnt = new Point(outp.X + currX + 10, outp.Y + currY + 10); foreach (var conn in conns) { if (conn.StartPlug == outp) { conn.StartPoint = pnt; } else { conn.EndPoint = pnt; } } } }