public void DeleteSelection(GraphApp app) { List <GUIEdge> localEdges = new List <GUIEdge>(); foreach (ISelectable i in currentSelection) { GUIVertex gv = i as GUIVertex; if (gv != null) { RemoveVertex(gv, app); foreach (GUIEdge ge in gv.GetEdges()) { localEdges.Add(ge); } continue; } GUIEdge e = i as GUIEdge; if (e != null) { RemoveEdge(e, app); continue; } } foreach (GUIEdge connected in localEdges) { RemoveEdge(connected, app); } Refresh(); }