This commit is contained in:
艾竹
2023-03-25 11:59:31 +08:00
parent 8a2c742ec4
commit b36bd4b228
35 changed files with 344 additions and 296 deletions

View File

@@ -347,7 +347,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
foreach (var parent in parents)
{
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))
foreach (var item in Items.OfType<MindNode>().Where(p => p.ParentId == parent.Id).ToList())
{
item.Parent = parent;
item.InitLayout(false);
@@ -426,7 +426,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
if (items?.Count == 0)
{
var node = new MindNode(this) { Text = "分支主题" };
var node = new MindNode(this) { Text = $"分支主题{parent.Children.Count + 1}"};
items.Add(node);
}
@@ -463,14 +463,15 @@ namespace AIStudio.Wpf.Mind.ViewModels
else
{
node = SelectedItem as MindNode;
}
if (items?.Count == 0)
{
items.Add(new MindNode(this) { Text = "分支主题" });
}
}
if (node.Parent is MindNode parent)
{
if (items?.Count == 0)
{
items.Add(new MindNode(this) { Text = $"分支主题{parent.Children.Count + 1}" });
}
DoCommandManager.DoNewCommand(this.ToString(),
() => {
int index = parent.Children.IndexOf(node);
@@ -510,15 +511,14 @@ namespace AIStudio.Wpf.Mind.ViewModels
pear = SelectedItem as MindNode;
}
if (items?.Count == 0)
{
var node = new MindNode(this) { Text = "分支主题" };
items.Add(node);
}
if (pear.Parent is MindNode parent)
{
if (items?.Count == 0)
{
var node = new MindNode(this) { Text = $"分支主题{parent.Children.Count + 1}" };
items.Add(node);
}
DoCommandManager.DoNewCommand(this.ToString(),
() => {
int index = parent.Children.IndexOf(pear);
@@ -667,22 +667,24 @@ namespace AIStudio.Wpf.Mind.ViewModels
#endregion
#region ,
protected override void FixConnection(List<SelectableDesignerItemViewModelBase> items)
protected override void FixOtherInfo(List<SelectableDesignerItemViewModelBase> items)
{
List<MindNode> parents = new List<MindNode>();
foreach (var item in items.OfType<MindNode>())
{
var parent = Items.OfType<MindNode>().FirstOrDefault(p => p.Id == item.ParentId);
if (parent != null)
if (parent != null && !items.Contains(parent))
{
parents.Add(parent);
}
else
else if (item.ParentId == Guid.Empty)
{
parents.Add(item);
item.InitLayout(false);
}
}
ResetChildren(parents);
parents.ForEach(p => p.LayoutUpdated());
}
#endregion