mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
82 lines
2.4 KiB
C#
82 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace AIStudio.Wpf.DiagramDesigner
|
|
{
|
|
public class ShapeViewModel : BindableBase, IShapeViewModel
|
|
{
|
|
private ISharpPath _sourceMarker = SharpPath.None;
|
|
public ISharpPath SourceMarker
|
|
{
|
|
get
|
|
{
|
|
return _sourceMarker;
|
|
}
|
|
set
|
|
{
|
|
if (_sourceMarker != value)
|
|
{
|
|
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker1)
|
|
{
|
|
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
|
|
}
|
|
SetProperty(ref _sourceMarker, value);
|
|
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker2)
|
|
{
|
|
_linkMarker2.PropertyChanged += ShapeViewModel_PropertyChanged;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
RaisePropertyChanged(nameof(SourceMarker));
|
|
}
|
|
}
|
|
}
|
|
|
|
private ISharpPath _sinkMarker = SharpPath.Arrow;
|
|
public ISharpPath SinkMarker
|
|
{
|
|
get
|
|
{
|
|
return _sinkMarker;
|
|
}
|
|
set
|
|
{
|
|
if (_sinkMarker != value)
|
|
{
|
|
if (_sinkMarker != null && _sinkMarker is SharpPath _linkMarker1)
|
|
{
|
|
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
|
|
}
|
|
SetProperty(ref _sinkMarker, value);
|
|
if (_sinkMarker != null && _sinkMarker is SharpPath _linkMarker2)
|
|
{
|
|
_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));
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|