mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-05 08:46:34 +08:00
事件Demo完成
This commit is contained in:
@@ -129,7 +129,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
Size size = _pageSize;
|
||||
switch (PageSizeType)
|
||||
{
|
||||
{
|
||||
case PageSizeType.A3: size = new Size(297, 420); break;
|
||||
case PageSizeType.A4: size = new Size(210, 297); break;
|
||||
case PageSizeType.A5: size = new Size(148, 210); break;
|
||||
@@ -230,7 +230,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
set
|
||||
{
|
||||
_gridCellSize.Height = value;
|
||||
_gridCellSize.Height = value;
|
||||
RaisePropertyChanged(nameof(PhysicalGridCellHeight));
|
||||
RaisePropertyChanged(nameof(GridCellSize));
|
||||
}
|
||||
@@ -682,7 +682,10 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
}
|
||||
#endregion
|
||||
|
||||
private DoCommandManager DoCommandManager = new DoCommandManager();
|
||||
private DoCommandManager DoCommandManager = new DoCommandManager();
|
||||
|
||||
public event DiagramEventHandler Event;
|
||||
|
||||
public DiagramViewModel()
|
||||
{
|
||||
CreateNewDiagramCommand = new SimpleCommand(ExecuteEnable, ExecuteCreateNewDiagramCommand);
|
||||
@@ -727,7 +730,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
Items.CollectionChanged += Items_CollectionChanged;
|
||||
}
|
||||
|
||||
public DiagramViewModel(DiagramItem diagramItem) :this()
|
||||
public DiagramViewModel(DiagramItem diagramItem) : this()
|
||||
{
|
||||
DiagramType = diagramItem.DiagramType;
|
||||
ShowGrid = diagramItem.ShowGrid;
|
||||
@@ -741,7 +744,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
GridColor = diagramItem.GridColor;
|
||||
}
|
||||
|
||||
public bool ExecuteEnable(object para)
|
||||
public bool ExecuteEnable(object para)
|
||||
{
|
||||
return IsReadOnly == false;
|
||||
}
|
||||
@@ -815,13 +818,18 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
if (designer.BeginDo) return;
|
||||
}
|
||||
|
||||
var selectable = sender as SelectableViewModelBase;
|
||||
|
||||
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
|
||||
{
|
||||
var property = sender.GetType().GetProperty(e.PropertyName);
|
||||
var attr = property.GetCustomAttributes(typeof(CanDoAttribute), true);
|
||||
if (attr != null && attr.Length != 0)
|
||||
{
|
||||
//加入ReDo
|
||||
DoCommandManager.DoNewCommand(sender.ToString() + e.PropertyName, () => Do(sender, e.PropertyName, valuePropertyChangedEventArgs.NewValue), () => UnDo(sender, e.PropertyName, valuePropertyChangedEventArgs.OldValue), null, false);
|
||||
|
||||
Event?.Invoke(sender, new DiagramEventArgs(valuePropertyChangedEventArgs.PropertyName, valuePropertyChangedEventArgs.NewValue, valuePropertyChangedEventArgs.OldValue, selectable?.Id));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1922,8 +1930,4 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -146,6 +146,7 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
private bool _isSelected;
|
||||
[Browsable(false)]
|
||||
[CanDo]
|
||||
public bool IsSelected
|
||||
{
|
||||
get
|
||||
|
||||
@@ -182,6 +182,8 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
get;
|
||||
}
|
||||
|
||||
event DiagramEventHandler Event;
|
||||
|
||||
Func<SelectableDesignerItemViewModelBase, bool> OutAddVerify
|
||||
{
|
||||
get; set;
|
||||
@@ -294,4 +296,30 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
}
|
||||
|
||||
public delegate void DiagramEventHandler(object sender, DiagramEventArgs e);
|
||||
|
||||
public class DiagramEventArgs : PropertyChangedEventArgs
|
||||
{
|
||||
public DiagramEventArgs(string propertyName, object oldValue, object newValue, Guid? id) : base(propertyName)
|
||||
{
|
||||
OldValue = oldValue;
|
||||
NewValue = newValue;
|
||||
Id = id;
|
||||
}
|
||||
|
||||
public object OldValue
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
public object NewValue
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
public Guid? Id
|
||||
{
|
||||
get; set;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user