private void UseSignalButtonClick(object sender, EventArgs e) { OutputConnectionsChanged = Block.OutputNodes.Count != TempBlock.OutputNodes.Count; InputConnectionsChanged = Block.InputNodes.Count != TempBlock.InputNodes.Count; var outputNodes = OutputConnectionsChanged ? TempBlock.OutputNodes : Block.OutputNodes; var inputNodes = InputConnectionsChanged ? TempBlock.InputNodes : Block.InputNodes; Block = TempBlock.Clone(); Block.OutputNodes = outputNodes; Block.InputNodes = inputNodes; foreach (var node in inputNodes) { node.Root = Block; } foreach (var node in outputNodes) { node.Root = Block; } Block.Cascade = true; Block.Execute(); }