PropertyChanged使用基类的,各个类不在自己定义

This commit is contained in:
艾竹
2023-04-10 23:08:14 +08:00
parent 429d7b1e24
commit ce2e44fe49
7 changed files with 53 additions and 55 deletions

View File

@@ -99,12 +99,11 @@ namespace AIStudio.Wpf.Mind.ViewModels
public void InitLayout(bool initAppearance)
{
IsLoaded = false;
var layout = TypeHelper.GetType(this.MindType.ToString() + "Layout");
MindLayout = layout != null ? (System.Activator.CreateInstance(layout) as IMindLayout) : new MindLayout();
this.PropertyChanged -= this.Item_PropertyChanged;
MindLayout.Appearance(this, MindTheme, initAppearance);
this.PropertyChanged += this.Item_PropertyChanged;
IsLoaded = true;
}
public void InitConnectionLayout()
@@ -559,7 +558,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
public void RemoveFrom()
{
this.PropertyChanged -= Item_PropertyChanged;
this.IsLoaded = false;
if (this.ParentNode != null)
{
this.ParentNode.Children.Remove(this);
@@ -572,8 +571,10 @@ namespace AIStudio.Wpf.Mind.ViewModels
#endregion
#region
private void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
protected override void Item_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (IsLoaded == false) return;
if (GetLevel0Node()?.LayoutUpdating == true) return;
Interlocked.Increment(ref Root.DoCommandManager.BeginDo);
@@ -600,7 +601,7 @@ namespace AIStudio.Wpf.Mind.ViewModels
case nameof(ItemWidth):
case nameof(ItemHeight):
{
UpdatedLayout();
break;
}
@@ -617,17 +618,12 @@ namespace AIStudio.Wpf.Mind.ViewModels
SetItemWidthHeight();
break;
}
case nameof(FontViewModel.FontSize):
SetItemWidthHeight();
break;
}
Interlocked.Decrement(ref Root.DoCommandManager.BeginDo);
}
protected override void FontViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(FontViewModel.FontSize))
{
SetItemWidthHeight();
}
}
#endregion
#region