using Serein.Library.Api; using Serein.NodeFlow.Model; using Serein.NodeFlow.Model.Nodes; using Serein.Workbench.Node.ViewModel; namespace Serein.Workbench.Node.View { /// /// ConditionNode.xaml 的交互逻辑 /// public partial class ConditionNodeControl : NodeControlBase, INodeJunction { /// /// 条件节点控件(用于条件控件) /// public ConditionNodeControl() : base() { // 窗体初始化需要 var env = App.GetService(); base.ViewModel = new ConditionNodeControlViewModel (new SingleConditionNode(env)); base.ViewModel.IsEnabledOnView = false; DataContext = ViewModel; base.ViewModel.NodeModel.DisplayName = "[条件节点]"; InitializeComponent(); } /// /// 条件节点控件(用于条件控件) /// /// public ConditionNodeControl(ConditionNodeControlViewModel viewModel):base(viewModel) { DataContext = viewModel; viewModel.NodeModel.DisplayName = "[条件节点]"; InitializeComponent(); } /// /// 入参控制点(可能有,可能没) /// JunctionControlBase INodeJunction.ExecuteJunction => this.ExecuteJunctionControl; /// /// 下一个调用方法控制点(可能有,可能没) /// JunctionControlBase INodeJunction.NextStepJunction => this.NextStepJunctionControl; /// /// 返回值控制点(可能有,可能没) /// JunctionControlBase INodeJunction.ReturnDataJunction => this.ResultJunctionControl; /// /// 方法入参控制点(可能有,可能没) /// private JunctionControlBase[] argDataJunction; /// /// 方法入参控制点(可能有,可能没) /// JunctionControlBase[] INodeJunction.ArgDataJunction { get { argDataJunction = new JunctionControlBase[1]; argDataJunction[0] = this.ArgJunctionControl; return argDataJunction; } } } }