Connector 错误处理

This commit is contained in:
艾竹
2023-04-26 22:53:44 +08:00
parent 48314acbd5
commit 7d8b19e4e0
6 changed files with 105 additions and 40 deletions

View File

@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using AIStudio.Wpf.DiagramDesigner.Enums;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
@@ -81,21 +83,54 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public bool ConnectorError
private ConnectorErrorCode _errorCode;
public ConnectorErrorCode ErrorCode
{
get; set;
}
public bool ValueError
{
get; set;
get
{
return _errorCode;
}
set
{
SetProperty(ref _errorCode, value);
}
}
private string _errorMessage;
public string ErrorMessage
{
get
{
return _errorMessage;
}
set
{
SetProperty(ref _errorMessage, value);
}
}
public bool ConnectorChanged
{
get; set;
}
protected override void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (IsLoaded == false) { return; }
switch (e.PropertyName)
{
case nameof(ConnectorValue):
case nameof(ConnectorString):
case nameof(ConnectorValueType):
case nameof(ErrorCode):
case nameof(ErrorMessage):
RaisePropertyChanged(nameof(ConnectorChanged));
break;
}
}
public override bool CanAttachTo(FullyCreatedConnectorInfo port)
{
if (!base.CanAttachTo(port))

View File

@@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using System.Windows.Media;
using AIStudio.Wpf.DiagramDesigner.Enums;
using AIStudio.Wpf.DiagramDesigner.Models;
namespace AIStudio.Wpf.DiagramDesigner
@@ -276,6 +277,7 @@ namespace AIStudio.Wpf.DiagramDesigner
var connector = GetSourceItem(input.Value);
if (connector == null)
{
input.Value.ErrorCode = ConnectorErrorCode.None;
continue;
}
@@ -301,9 +303,9 @@ namespace AIStudio.Wpf.DiagramDesigner
}
else
{
input.Value.ConnectorError = true;
input.Value.ErrorCode = ConnectorErrorCode.ConnErr;
input.Value.ErrorMessage = "连接类型不匹配";
input.Value.ColorViewModel.FillColor.Color = Colors.Orange;
input.Value.ColorViewModel.FillColor.Color = Colors.DarkRed;
}
}
}
@@ -313,9 +315,9 @@ namespace AIStudio.Wpf.DiagramDesigner
{
foreach (var output in Output)
{
if (output.Value.ValueError)
if (output.Value.ErrorCode != ConnectorErrorCode.None)
{
output.Value.ColorViewModel.FillColor.Color = Colors.Orange;
output.Value.ColorViewModel.FillColor.Color = Colors.DarkRed;
}
else if (output.Value.ConnectorValueType == ConnectorValueType.Bool)
{