mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-14 13:16:38 +08:00
do redo
This commit is contained in:
@@ -24,6 +24,14 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
DragCompleted += RotateThumb_DragCompleted;
|
||||
}
|
||||
|
||||
public IDiagramViewModel DiagramViewModel
|
||||
{
|
||||
get
|
||||
{
|
||||
return (this.DataContext as SelectableDesignerItemViewModelBase)?.Root;
|
||||
}
|
||||
}
|
||||
|
||||
private List<SelectableDesignerItemViewModelBase> designerItems;
|
||||
|
||||
private void RotateThumb_DragStarted(object sender, DragStartedEventArgs e)
|
||||
@@ -34,9 +42,9 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
{
|
||||
designerItems = designerItem.Root.SelectedItems.ToList();
|
||||
|
||||
DiagramViewModel.DoCommandManager.BeginDo = true;
|
||||
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
|
||||
{
|
||||
item.BeginDo = true;
|
||||
item.SetOldValue(this.designerItem.Angle, nameof(this.designerItem.Angle));
|
||||
}
|
||||
|
||||
@@ -69,10 +77,26 @@ namespace AIStudio.Wpf.DiagramDesigner.Controls
|
||||
{
|
||||
foreach (DesignerItemViewModelBase item in designerItems.OfType<DesignerItemViewModelBase>())
|
||||
{
|
||||
item.BeginDo = false;
|
||||
item.RaiseAngle();
|
||||
|
||||
}
|
||||
|
||||
Dictionary<DesignerItemViewModelBase, Tuple<double, double>> infos =
|
||||
designerItems.OfType<DesignerItemViewModelBase>().ToDictionary(p => p,
|
||||
p => new Tuple<double, double>(p.GetOldValue<double>(nameof(p.Angle)), p.Angle));
|
||||
DiagramViewModel.DoCommandManager.BeginDo = false;
|
||||
DiagramViewModel.DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
foreach (var info in infos)
|
||||
{
|
||||
info.Key.Angle = info.Value.Item2;
|
||||
}
|
||||
},
|
||||
() => {
|
||||
foreach (var info in infos)
|
||||
{
|
||||
info.Key.Angle = info.Value.Item1;
|
||||
}
|
||||
});
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user