序列化bug修复,近期主要修复bug为主

This commit is contained in:
艾竹
2023-04-02 22:59:22 +08:00
parent 7835b422ff
commit a3fbb2d8ad
14 changed files with 158 additions and 68 deletions

View File

@@ -24,7 +24,10 @@ namespace AIStudio.Wpf.Mind.ViewModels
}
set
{
SetProperty(ref _mindType, value);
if (!SetProperty(ref _mindType, value))
{
RaisePropertyChanged(nameof(MindType));
}
}
}
@@ -37,7 +40,10 @@ namespace AIStudio.Wpf.Mind.ViewModels
}
set
{
SetProperty(ref _mindTheme, value);
if (!SetProperty(ref _mindTheme, value))
{
RaisePropertyChanged(nameof(MindTheme));
}
}
}
@@ -365,15 +371,18 @@ namespace AIStudio.Wpf.Mind.ViewModels
}
public override void Init()
public override void Init(bool initNew)
{
if (Items.Count == 0)
if (initNew)
{
AddRootItem();
if (Items.Count == 0)
{
AddRootItem();
}
}
ResetChildren(RootItems);
RootItems?.ForEach(p => p.UpdatedLayout());
base.Init();
base.Init(initNew);
}
private MindNode AddRootItem()
@@ -437,11 +446,13 @@ namespace AIStudio.Wpf.Mind.ViewModels
#endregion
#region
private bool isSelecting;
protected override void Item_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.Item_PropertyChanged(sender, e);
if (e.PropertyName == "IsSelected")
{
isSelecting = true;
if (e is ValuePropertyChangedEventArgs valuePropertyChangedEventArgs)
{
LinkInfo = new LinkInfo(MindSelectedItem?.LinkInfo);
@@ -453,6 +464,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
MindTheme = MindSelectedItem.MindTheme;
}
}
isSelecting = false;
}
}
#endregion
@@ -1077,6 +1089,8 @@ namespace AIStudio.Wpf.Mind.ViewModels
#region
private void ExecutedChangeMindTypeCommand(object obj)
{
if (isSelecting) return;
var oldMindType = MindType;
if (obj is MindType mindType && mindType != oldMindType)
{
@@ -1103,6 +1117,8 @@ namespace AIStudio.Wpf.Mind.ViewModels
private void ExecutedChangeMindThemeCommand(object obj)
{
if (isSelecting) return;
var oldmindTheme = MindTheme;
if (obj is MindTheme mindTheme && mindTheme != oldmindTheme)
{

View File

@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.Design;
using System.Linq;
using System.Security.Policy;
using System.Text;
@@ -51,6 +53,8 @@ namespace AIStudio.Wpf.Mind.ViewModels
{
var mindNodeModel = new MindNodeModel();
mindNodeModel.MindType = MindType;
mindNodeModel.MindTheme = MindTheme;
mindNodeModel.Spacing = Spacing;
mindNodeModel.Offset = Offset;
mindNodeModel.IsExpanded = IsExpanded;
@@ -134,6 +138,8 @@ namespace AIStudio.Wpf.Mind.ViewModels
if (designerbase is MindNodeDesignerItem designer)
{
MindType = designer.MindType;
MindTheme = designer.MindTheme;
Spacing = designer.Spacing;
Offset = designer.Offset;
IsExpanded = designer.IsExpanded;
@@ -154,8 +160,14 @@ namespace AIStudio.Wpf.Mind.ViewModels
ImageInfo = new ImageInfo(designer.ImageInfoItem?.Url, designer.ImageInfoItem?.Text);
}
Remark = designer.Remark;
Priority = designer.Priority;
Rate = designer.Rate;
if (double.TryParse(designer.Priority ?? "", out var priority))
{
Priority = priority;
}
if (double.TryParse(designer.Rate ?? "", out var rate))
{
Rate = rate;
}
if (designer.Tags != null)
{
Tags = new ObservableCollection<string>(designer.Tags);
@@ -456,7 +468,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
public ICommand ImportCommand
{
get; private set;
}
}
#endregion
#region
@@ -497,7 +509,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
menuItem.Text = "导出节点";
menuItem.Command = ExportCommand;
menuItem.CommandParameter = this;
menuOptions.Add(menuItem);
menuOptions.Add(menuItem);
menuItem = new CinchMenuItem();
menuItem.Text = "导入节点";
menuItem.Command = ImportCommand;
@@ -547,7 +559,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
Root?.Remove(this);
Root?.Remove(connectors);
}
}
#endregion
#region
@@ -584,7 +596,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
case nameof(NodeLevel):
MindLayout?.Appearance(this);
break;
case nameof(Text):
case nameof(Text):
case nameof(Rate):
case nameof(Priority):
case nameof(Remark):
@@ -650,7 +662,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
{
mindnode.Add(this);
}
if (this.Children != null)
{
foreach (var child in this.Children)
@@ -727,7 +739,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
IsSelected = selected;
}
#endregion
}