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;
}
}
}
}