public override void RemoveConnections() { GraphEditorViewModel editor = (GraphEditorViewModel)((MainWindow)(App.Current.MainWindow)).VisualEditor.DataContext; List <NodePin> pins = new List <NodePin>(); pins.AddRange(Inputs.Select(pin => pin.Pin)); pins.AddRange(Outputs.Select(pin => pin.Pin)); pins.AddRange(ExecutionInputs.Select(pin => pin.Pin)); pins.AddRange(ExecutionOutputs.Select(pin => pin.Pin)); List <ConnectionViewModel> connectionsToRemove = new List <ConnectionViewModel>(); foreach (var connection in editor.Connections) { if (pins.Contains(connection.InputPinControl) || (pins.Contains(connection.OutputPinControl))) { connectionsToRemove.Add(connection); } } foreach (var connection in connectionsToRemove) { editor.Connections.Remove(connection); } }