mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-01 22:56:35 +08:00
mind
This commit is contained in:
@@ -411,31 +411,44 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
|
||||
protected override bool Delete(object parameter)
|
||||
{
|
||||
if (parameter is MindNode node)
|
||||
List<MindNode> nodes = new List<MindNode>();
|
||||
if (parameter is MindNode node1)
|
||||
{
|
||||
|
||||
nodes.Add(node1);
|
||||
}
|
||||
else if (parameter is IEnumerable<MindNode> para)
|
||||
{
|
||||
nodes.AddRange(para);
|
||||
}
|
||||
else
|
||||
{
|
||||
node = SelectedItem as MindNode;
|
||||
nodes.AddRange(SelectedItems.OfType<MindNode>());
|
||||
}
|
||||
|
||||
if (node.IsEditing == true)
|
||||
if (nodes.FirstOrDefault()?.IsEditing != false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (node.Parent is MindNode parent)
|
||||
nodes = nodes.Except(new List<MindNode>{ RootItem }).ToList();
|
||||
|
||||
if (nodes.Any())
|
||||
{
|
||||
int index = parent.Children.IndexOf(node);
|
||||
Dictionary<MindNode, int> indexs = nodes.ToDictionary(p => p, p => p.ParentNode.Children.IndexOf(p));
|
||||
DoCommandManager.DoNewCommand(this.ToString(),
|
||||
() => {
|
||||
parent.RemoveChild(node, true);
|
||||
parent.LayoutUpdated();
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
node.ParentNode.RemoveChild(node, true);
|
||||
}
|
||||
RootItem.LayoutUpdated();
|
||||
},
|
||||
() => {
|
||||
parent.AddChild(node, index);
|
||||
parent.LayoutUpdated();
|
||||
foreach (var node in nodes)
|
||||
{
|
||||
node.ParentNode.AddChild(node, indexs[node]);
|
||||
}
|
||||
RootItem.LayoutUpdated();
|
||||
});
|
||||
return true;
|
||||
}
|
||||
@@ -512,6 +525,9 @@ namespace AIStudio.Wpf.Mind.ViewModels
|
||||
parent.Children = new System.Collections.ObjectModel.ObservableCollection<MindNode>(Items.OfType<MindNode>().Where(p => p.ParentId == parent.Id));
|
||||
foreach (var item in Items.OfType<MindNode>().Where(p => p.ParentId == parent.Id))
|
||||
{
|
||||
item.Parent = parent;
|
||||
item.InitLayout(false);
|
||||
item.InitConnectLayout();
|
||||
GetChildren(item);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user