using Serein.Library.Api; using Serein.NodeFlow.Model; using Serein.NodeFlow.Model.Nodes; using Serein.Workbench.Node.ViewModel; namespace Serein.Workbench.Node.View { /// /// ExprOpNodeControl.xaml 的交互逻辑 /// public partial class ExpOpNodeControl : NodeControlBase, INodeJunction { /// /// 表达式操作节点控件 /// public ExpOpNodeControl() : base() { // 窗体初始化需要 var env = App.GetService(); ViewModel = new ExpOpNodeControlViewModel(new SingleExpOpNode(env)); base.ViewModel.IsEnabledOnView = false; base.ViewModel.NodeModel.DisplayName = "[表达式]"; DataContext = ViewModel; InitializeComponent(); } /// /// 表达式操作节点控件构造函数,使用指定的 ViewModel 初始化 /// /// public ExpOpNodeControl(ExpOpNodeControlViewModel 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; } } } }