This commit is contained in:
kwai
2023-06-20 13:46:26 +08:00
parent 4870a2fd0e
commit 82500f86a6
7 changed files with 487 additions and 434 deletions

View File

@@ -3,11 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Input;
namespace AIStudio.Wpf.DiagramDesigner
{
public class BlockDiagramViewModel : DiagramViewModel
public class BlockDiagramViewModel : DiagramViewModel, IBlockDiagramViewModel
{
public BlockDiagramViewModel()
{
@@ -54,25 +55,86 @@ namespace AIStudio.Wpf.DiagramDesigner
#region Block使用
private void ExecutedAddNextCommand(object parameter)
{
if (parameter is Tuple<BlockDesignerItemViewModel, BlockDesignerItemViewModel> blockTuple)
if (parameter is BlockNextPara blockItemPara)
{
DoCommandManager.DoNewCommand(this.ToString(),
() => {
blockItemPara.Item.AddNext(blockItemPara.Next);
},
() => {
blockItemPara.Item.RemoveNext();
});
}
}
private void ExecutedRemoveNextCommand(object parameter)
{
if (parameter is BlockNextPara blockItemPara)
{
DoCommandManager.DoNewCommand(this.ToString(),
() => {
blockItemPara.Item.RemoveNext();
},
() => {
blockItemPara.Item.AddNext(blockItemPara.Next);
});
}
}
private void ExecutedAddChildCommand(object parameter)
{
if (parameter is BlockContainerPara blockContainerPara)
{
DoCommandManager.DoNewCommand(this.ToString(),
() => {
blockContainerPara.Item.AddChild(blockContainerPara.Child, blockContainerPara.Container);
},
() => {
blockContainerPara.Item.RemoveChild(blockContainerPara.Child, blockContainerPara.Container);
});
}
}
private void ExecutedRemoveChildCommand(object parameter)
{
if (parameter is BlockContainerPara blockContainerPara)
{
DoCommandManager.DoNewCommand(this.ToString(),
() => {
blockContainerPara.Item.RemoveChild(blockContainerPara.Child, blockContainerPara.Container);
},
() => {
blockContainerPara.Item.AddChild(blockContainerPara.Child, blockContainerPara.Container);
});
}
}
#endregion
}
public class BlockNextPara
{
public BlockDesignerItemViewModel Item
{
get; set;
}
public BlockDesignerItemViewModel Next
{
get;set;
}
}
public class BlockContainerPara
{
public BlockDesignerItemViewModel Item
{
get; set;
}
public BlockDesignerItemViewModel Child
{
get; set;
}
public BlockItemsContainerInfo Container
{
get; set;
}
}
}