Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/ViewModels/AdditionViewModel/ShapeViewModel.cs

82 lines
2.4 KiB
C#
Raw Normal View History

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
{
get
{
return _sourceMarker;
}
set
{
if (_sourceMarker != value)
{
2023-04-29 15:29:22 +08:00
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker1)
{
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
}
SetProperty(ref _sourceMarker, value);
2023-04-29 15:29:22 +08:00
if (_sourceMarker != null && _sourceMarker is SharpPath _linkMarker2)
{
_linkMarker2.PropertyChanged += ShapeViewModel_PropertyChanged;
}
}
else
{
RaisePropertyChanged(nameof(SourceMarker));
2023-02-04 11:16:39 +08:00
}
}
}
2023-04-29 15:29:22 +08:00
private ISharpPath _sinkMarker = SharpPath.Arrow;
public ISharpPath SinkMarker
{
get
{
return _sinkMarker;
}
set
{
if (_sinkMarker != value)
{
2023-04-29 15:29:22 +08:00
if (_sinkMarker != null && _sinkMarker is SharpPath _linkMarker1)
{
_linkMarker1.PropertyChanged -= ShapeViewModel_PropertyChanged;
}
SetProperty(ref _sinkMarker, value);
2023-04-29 15:29:22 +08:00
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));
}
}
}
2023-04-29 18:36:50 +08:00
2023-04-29 18:36:50 +08:00
}