private void DetachConnectionsFromUnselectedShape() { ConnectionCollection t_removeConnections = new ConnectionCollection(); Connector t_leftConnector = null; foreach (Shape shape in (Site as GraphControl).SelectedShapes) { if (shape.Connectors["Left"] == null) { continue; } foreach (Connection connection in shape.Connectors["Left"].Connections) { if (connection.From.Name == "Left" && connection.To.Name == "Left") { if (!(connection.From.BelongsTo.IsSelected && connection.To.BelongsTo.IsSelected)) { if (!t_removeConnections.Contains(connection)) { t_removeConnections.Add(connection); } } } } } foreach (Connection connection in t_removeConnections) { connection.Remove(); } }