diff --git a/NodeFlow/Base/NodeModelBaseData.cs b/NodeFlow/Base/NodeModelBaseData.cs
index b8de691..d89abe0 100644
--- a/NodeFlow/Base/NodeModelBaseData.cs
+++ b/NodeFlow/Base/NodeModelBaseData.cs
@@ -41,7 +41,7 @@ namespace Serein.NodeFlow.Base
///
/// 节点guid
///
- public string Guid { get; set; } = string.Empty;
+ public string Guid { get; set; }
///
/// 显示名称
diff --git a/WorkBench/MainWindow.xaml.cs b/WorkBench/MainWindow.xaml.cs
index 355fff8..2b07d51 100644
--- a/WorkBench/MainWindow.xaml.cs
+++ b/WorkBench/MainWindow.xaml.cs
@@ -2199,7 +2199,10 @@ namespace Serein.WorkBench
{
throw new Exception("无法创建节点控件");
}
-
+ if (string.IsNullOrEmpty(model.Guid))
+ {
+ model.Guid = Guid.NewGuid().ToString();
+ }
var viewModel = Activator.CreateInstance(typeof(TViewModel), [model]);
var controlObj = Activator.CreateInstance(typeof(TControl), [viewModel]);
if (controlObj is TControl control)
@@ -2219,15 +2222,13 @@ namespace Serein.WorkBench
{
var nodeObj = Activator.CreateInstance(typeof(TNode));
- var nodeBase = nodeObj as NodeModelBase;
- if (nodeBase is null)
+ var nodeBase = nodeObj as NodeModelBase ?? throw new Exception("无法创建节点控件");
+
+
+ if (string.IsNullOrEmpty(nodeBase.Guid))
{
- throw new Exception("无法创建节点控件");
+ nodeBase.Guid = Guid.NewGuid().ToString();
}
-
-
- nodeBase.Guid = Guid.NewGuid().ToString();
-
if (methodDetails != null)
{
var md = methodDetails.Clone();