From ba74facf7d2ac30e3f588bff694c3d6a6ae3cebb Mon Sep 17 00:00:00 2001 From: fengjiayi <12821976+ning_xi@user.noreply.gitee.com> Date: Thu, 3 Apr 2025 15:58:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8E=AF=E5=A2=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=88=E5=A2=9E=E5=8A=A0=E7=94=BB=E5=B8=83ID?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Library/Serein.Library.csproj | 3 ++- NodeFlow/Env/FlowEnvironment.cs | 9 +++++++-- NodeFlow/Env/RemoteFlowEnvironment.cs | 2 +- NodeFlow/Serein.NodeFlow.csproj | 2 +- .../Serein.Library.NodeGenerator.csproj | 3 +-- Serein.Script/Serein.Script.csproj | 1 + Workbench/Serein.WorkBench.csproj | 2 +- Workbench/Services/FlowNodeService.cs | 9 ++++++--- Workbench/ViewModels/FlowEditViewModel.cs | 5 ++--- Workbench/ViewModels/FlowLibrarysViewModel.cs | 2 -- Workbench/ViewModels/FlowWorkbenchViewModel.cs | 2 -- Workbench/Views/FlowCanvasView.xaml.cs | 6 +++--- 12 files changed, 25 insertions(+), 21 deletions(-) diff --git a/Library/Serein.Library.csproj b/Library/Serein.Library.csproj index e81bb66..b0f5275 100644 --- a/Library/Serein.Library.csproj +++ b/Library/Serein.Library.csproj @@ -4,7 +4,8 @@ 1.1.0 net8.0;net462 - D:\Project\C#\DynamicControl\SereinFlow\.Output + ..\.\.Output + True SereinFow 基础依赖 diff --git a/NodeFlow/Env/FlowEnvironment.cs b/NodeFlow/Env/FlowEnvironment.cs index ee66013..7caa234 100644 --- a/NodeFlow/Env/FlowEnvironment.cs +++ b/NodeFlow/Env/FlowEnvironment.cs @@ -767,6 +767,8 @@ namespace Serein.NodeFlow.Env //} } + private int _addCanvasCount = 0; + /// /// 增加画布 /// @@ -780,11 +782,14 @@ namespace Serein.NodeFlow.Env { Guid = Guid.NewGuid().ToString(), Height = height, - Name = canvasName, + Name = !string.IsNullOrWhiteSpace(canvasName) ? canvasName : $"流程图 {_addCanvasCount++}", Width = height, }; FlowCanvass.Add(model.Guid, model); - OnCanvasCreate.Invoke(new CanvasCreateEventArgs(model)); + UIContextOperation.Invoke(() => + { + OnCanvasCreate.Invoke(new CanvasCreateEventArgs(model)); + }); var info = model.ToInfo(); return Task.FromResult(info); } diff --git a/NodeFlow/Env/RemoteFlowEnvironment.cs b/NodeFlow/Env/RemoteFlowEnvironment.cs index 7558825..95ad133 100644 --- a/NodeFlow/Env/RemoteFlowEnvironment.cs +++ b/NodeFlow/Env/RemoteFlowEnvironment.cs @@ -445,7 +445,7 @@ namespace Serein.NodeFlow.Env Width = info.Width, }; UIContextOperation?.Invoke(() => - OnCanvasCreate?.Invoke(new CanvasCreateEventArgs(info))); + OnCanvasCreate?.Invoke(new CanvasCreateEventArgs(model))); return info; } diff --git a/NodeFlow/Serein.NodeFlow.csproj b/NodeFlow/Serein.NodeFlow.csproj index 5eaf7b0..01bfb4b 100644 --- a/NodeFlow/Serein.NodeFlow.csproj +++ b/NodeFlow/Serein.NodeFlow.csproj @@ -5,7 +5,7 @@ net8.0 enable enable - D:\Project\C#\DynamicControl\SereinFlow\.Output + ..\.\.Output True SereinFow 管理节点的运行环境,非二次开发无须添加 diff --git a/Serein.Library.MyGenerator/Serein.Library.NodeGenerator.csproj b/Serein.Library.MyGenerator/Serein.Library.NodeGenerator.csproj index fa5086e..13771c3 100644 --- a/Serein.Library.MyGenerator/Serein.Library.NodeGenerator.csproj +++ b/Serein.Library.MyGenerator/Serein.Library.NodeGenerator.csproj @@ -4,8 +4,7 @@ netstandard2.0 1.1.0 true - - D:\Project\C#\DynamicControl\SereinFlow\.Output + ..\.\.Output True SereinFow 基础依赖必须添加项,用于生成NodeModel部分的依赖实体代码 diff --git a/Serein.Script/Serein.Script.csproj b/Serein.Script/Serein.Script.csproj index 75b6308..783b61f 100644 --- a/Serein.Script/Serein.Script.csproj +++ b/Serein.Script/Serein.Script.csproj @@ -4,6 +4,7 @@ net8.0 enable enable + ..\.\.Output diff --git a/Workbench/Serein.WorkBench.csproj b/Workbench/Serein.WorkBench.csproj index cd26351..644a844 100644 --- a/Workbench/Serein.WorkBench.csproj +++ b/Workbench/Serein.WorkBench.csproj @@ -6,7 +6,7 @@ enable enable True - D:\Project\C#\DynamicControl\SereinFlow\.Output + ..\.\.Output MIT true diff --git a/Workbench/Services/FlowNodeService.cs b/Workbench/Services/FlowNodeService.cs index db24001..1c32e62 100644 --- a/Workbench/Services/FlowNodeService.cs +++ b/Workbench/Services/FlowNodeService.cs @@ -117,7 +117,7 @@ namespace Serein.Workbench.Services #endregion - + #region 向运行环境发出请求 @@ -128,10 +128,13 @@ namespace Serein.Workbench.Services /// public void CreateFlowCanvas() { - string canvasName = ""; int height = 1000; int width = 600; - _ = flowEnvironment.CreateCanvasAsync(canvasName, width, height); + _ = Task.Run(async () => + { + var result = await flowEnvironment.CreateCanvasAsync("", width, height); + Console.WriteLine(result.Guid); + }); } /// diff --git a/Workbench/ViewModels/FlowEditViewModel.cs b/Workbench/ViewModels/FlowEditViewModel.cs index 5f1549c..45fab07 100644 --- a/Workbench/ViewModels/FlowEditViewModel.cs +++ b/Workbench/ViewModels/FlowEditViewModel.cs @@ -28,7 +28,6 @@ namespace Serein.Workbench.ViewModels [ObservableProperty] private FlowCanvasModel _selectedTab; - private int _addCount = 0; private readonly FlowNodeService flowNodeService; public FlowEditViewModel(FlowNodeService flowNodeService) @@ -37,8 +36,8 @@ namespace Serein.Workbench.ViewModels AddTabCommand = new RelayCommand(AddTab); RemoveTabCommand = new RelayCommand(RemoveTab, CanRemoveTab); - flowNodeService.OnCreateFlowCanvasView += OnCreateFlowCanvasView; // 环境创建了节点 - flowNodeService.OnRemoveFlowCanvasView += OnRemoveFlowCanvasView; + flowNodeService.OnCreateFlowCanvasView += OnCreateFlowCanvasView; // 运行环境创建了画布 + flowNodeService.OnRemoveFlowCanvasView += OnRemoveFlowCanvasView; // 运行环境移除了画布 this.PropertyChanged += OnPropertyChanged; } diff --git a/Workbench/ViewModels/FlowLibrarysViewModel.cs b/Workbench/ViewModels/FlowLibrarysViewModel.cs index 122f978..d36d093 100644 --- a/Workbench/ViewModels/FlowLibrarysViewModel.cs +++ b/Workbench/ViewModels/FlowLibrarysViewModel.cs @@ -19,8 +19,6 @@ namespace Serein.Workbench.ViewModels [ObservableProperty] private ObservableCollection flowLibraryInfos; - - public FlowLibrarysViewModel(IFlowEEForwardingService flowEEForwardingService) { this.flowEEForwardingService = flowEEForwardingService; diff --git a/Workbench/ViewModels/FlowWorkbenchViewModel.cs b/Workbench/ViewModels/FlowWorkbenchViewModel.cs index 4f3680b..387e870 100644 --- a/Workbench/ViewModels/FlowWorkbenchViewModel.cs +++ b/Workbench/ViewModels/FlowWorkbenchViewModel.cs @@ -14,8 +14,6 @@ namespace Serein.Workbench.ViewModels { private readonly IFlowEEForwardingService flowEEForwardingService; - - public FlowWorkbenchViewModel(IFlowEEForwardingService flowEEForwardingService) { this.flowEEForwardingService = flowEEForwardingService; diff --git a/Workbench/Views/FlowCanvasView.xaml.cs b/Workbench/Views/FlowCanvasView.xaml.cs index b072ec1..e3cd238 100644 --- a/Workbench/Views/FlowCanvasView.xaml.cs +++ b/Workbench/Views/FlowCanvasView.xaml.cs @@ -26,7 +26,7 @@ namespace Serein.Workbench.Views /// public partial class FlowCanvasView : UserControl { - public FlowCanvasViewModel ViewModel => ViewModel as FlowCanvasViewModel; + public FlowCanvasViewModel ViewModel => this.DataContext as FlowCanvasViewModel; /// /// 存储所有的连接。考虑集成在运行环境中。 /// @@ -89,8 +89,8 @@ namespace Serein.Workbench.Views private IFlowEnvironment EnvDecorator; public FlowCanvasView() { - ViewModel = App.GetService().FlowCanvasViewModel; - this.DataContext = ViewModel; + var vm = App.GetService().FlowCanvasViewModel; + this.DataContext = vm; EnvDecorator = App.GetService(); InitializeComponent();