事件Demo完成

This commit is contained in:
艾竹
2023-02-12 11:02:20 +08:00
parent 8a50854868
commit 98392f377b
10 changed files with 808 additions and 13 deletions

View File

@@ -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
}
}
}