2023-01-26 18:27:17 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
|
|
namespace AIStudio.Wpf.DiagramDesigner
|
|
|
|
|
|
{
|
|
|
|
|
|
public class ShapeViewModel : BindableBase, IShapeViewModel
|
|
|
|
|
|
{
|
2023-04-29 15:29:22 +08:00
|
|
|
|
private ISharpPath _sourceMarker = SharpPath.None;
|
|
|
|
|
|
public ISharpPath SourceMarker
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _sourceMarker;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_sourceMarker != value)
|
|
|
|
|
|
{
|
2023-04-29 15:29:22 +08:00
|
|
|
|
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker1)
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
|
|
|
|
|
|
}
|
|
|
|
|
|
SetProperty(ref _sourceMarker, value);
|
2023-04-29 15:29:22 +08:00
|
|
|
|
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker2)
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
_linkMarker2.PropertyChanged += ShapeViewModel_PropertyChanged;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
RaisePropertyChanged(nameof(SourceMarker));
|
2023-02-04 11:16:39 +08:00
|
|
|
|
}
|
2023-01-26 18:27:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-29 15:29:22 +08:00
|
|
|
|
private ISharpPath _sinkMarker = SharpPath.Arrow;
|
|
|
|
|
|
public ISharpPath SinkMarker
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
get
|
|
|
|
|
|
{
|
|
|
|
|
|
return _sinkMarker;
|
|
|
|
|
|
}
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
if (_sinkMarker != value)
|
|
|
|
|
|
{
|
2023-04-29 15:29:22 +08:00
|
|
|
|
if (_sinkMarker != null && _sinkMarker is SharpPath _linkMarker1)
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
|
|
|
|
|
|
}
|
|
|
|
|
|
SetProperty(ref _sinkMarker, value);
|
2023-04-29 15:29:22 +08:00
|
|
|
|
if (_sinkMarker != null && _sinkMarker is SharpPath _linkMarker2)
|
2023-01-26 18:27:17 +08:00
|
|
|
|
{
|
|
|
|
|
|
_linkMarker2.PropertyChanged += ShapeViewModel_PropertyChanged;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
RaisePropertyChanged(nameof(SinkMarker));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ShapeViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (sender == SourceMarker)
|
|
|
|
|
|
{
|
|
|
|
|
|
RaisePropertyChanged(nameof(SourceMarker));
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (sender == SinkMarker)
|
|
|
|
|
|
{
|
|
|
|
|
|
RaisePropertyChanged(nameof(SinkMarker));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-04-29 18:36:50 +08:00
|
|
|
|
|
2023-01-26 18:27:17 +08:00
|
|
|
|
|
2023-04-29 18:36:50 +08:00
|
|
|
|
|
2023-01-26 18:27:17 +08:00
|
|
|
|
}
|