// Connect pins private void CommandConnectPins_CanExecute(object sender, CanExecuteRoutedEventArgs e) { ConnectPinsParameters xcp = e.Parameter as ConnectPinsParameters; e.CanExecute = e.Parameter is ConnectPinsParameters cp && GraphUtil.CanConnectNodePins(cp.PinA.Pin, cp.PinB.Pin, (a, b) => ProjectVM.Instance.ReflectionProvider.TypeSpecifierIsSubclassOf(a, b)); }
private void CommandConnectPins_Execute(object sender, ExecutedRoutedEventArgs e) { ConnectPinsParameters cp = e.Parameter as ConnectPinsParameters; if (cp.PinA.Pin is NodeInputDataPin || cp.PinA.Pin is NodeOutputExecPin || cp.PinA.Pin is NodeInputTypePin) { cp.PinA.ConnectedPin = cp.PinB; } else { cp.PinB.ConnectedPin = cp.PinA; } }