从节点Model解耦出容器接口,重新设计了节点的保存、加载。

This commit is contained in:
fengjiayi
2024-12-24 22:23:53 +08:00
parent 949ac973bc
commit 5b0ba84fd6
30 changed files with 979 additions and 760 deletions

View File

@@ -20,10 +20,8 @@ namespace Serein.Workbench.Node.View
/// <summary>
/// UserControl1.xaml 的交互逻辑
/// </summary>
public partial class GlobalDataControl : NodeControlBase, INodeJunction
public partial class GlobalDataControl : NodeControlBase, INodeJunction, INodeContainerControl
{
//private new GlobalDataNodeControlViewModel ViewModel => ViewModel;
public GlobalDataControl() : base()
{
// 窗体初始化需要
@@ -39,19 +37,6 @@ namespace Serein.Workbench.Node.View
}
/// <summary>
/// 设置数据节点
/// </summary>
/// <param name="nodeControl"></param>
public void SetDataNodeControl(NodeControlBase nodeControl)
{
((GlobalDataNodeControlViewModel)ViewModel).SetDataNode(nodeControl.ViewModel.NodeModel);
GlobalDataPanel.Children.Clear();
GlobalDataPanel.Children.Add(nodeControl);
}
/// <summary>
/// 入参控制点(可能有,可能没)
/// </summary>
@@ -73,5 +58,21 @@ namespace Serein.Workbench.Node.View
JunctionControlBase[] INodeJunction.ArgDataJunction => throw new NotImplementedException();
public void PlaceNode(NodeControlBase nodeControl)
{
GlobalDataPanel.Children.Clear();
GlobalDataPanel.Children.Add(nodeControl);
}
public void TakeOutNode(NodeControlBase nodeControl)
{
GlobalDataPanel.Children.Remove(nodeControl);
}
public void TakeOutAll()
{
GlobalDataPanel.Children.Clear();
}
}
}