整理序列化

This commit is contained in:
艾竹
2023-01-24 16:20:39 +08:00
parent f39a57b3e5
commit 8dbe05636d
55 changed files with 588 additions and 464 deletions

View File

@@ -26,21 +26,21 @@ namespace AIStudio.Wpf.DiagramDesigner
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public SelectableViewModelBase(IDiagramViewModel parent, SelectableDesignerItemBase designer)
public SelectableViewModelBase(IDiagramViewModel root, SelectableItemBase designer)
{
Init();
LoadDesignerItemViewModel(parent, designer);
LoadDesignerItemViewModel(root, designer);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public SelectableViewModelBase(IDiagramViewModel parent, string json)
public SelectableViewModelBase(IDiagramViewModel root, string json)
{
Init();
LoadDesignerItemViewModel(parent, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableDesignerItemBase);
LoadDesignerItemViewModel(root, JsonConvert.DeserializeObject(json, ToXmlType()) as SelectableItemBase);
(FontViewModel as FontViewModel).PropertyChanged += FontViewModel_PropertyChanged;
}
public virtual SelectableDesignerItemBase ToXmlObject()
public virtual SelectableItemBase ToXmlObject()
{
return null;
}
@@ -72,9 +72,9 @@ namespace AIStudio.Wpf.DiagramDesigner
LockObjectViewModel = new LockObjectViewModel();
}
protected virtual void LoadDesignerItemViewModel(IDiagramViewModel parent, SelectableDesignerItemBase designerbase)
protected virtual void LoadDesignerItemViewModel(IDiagramViewModel root, SelectableItemBase designerbase)
{
this.Parent = parent;
this.Root = root;
this.Id = designerbase.Id;
this.ParentId = designerbase.ParentId;
@@ -86,10 +86,16 @@ namespace AIStudio.Wpf.DiagramDesigner
FontViewModel = CopyHelper.Mapper<FontViewModel, FontItem>(designerbase.FontItem);
}
public IDiagramViewModel Parent
public IDiagramViewModel Root
{
get; set;
}
public SelectableViewModelBase Parent
{
get; set;
}
public Guid Id
{
get; set;
@@ -148,10 +154,16 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get
{
if (Parent?.IsReadOnly == true && Parent?.IsLoading == false)
if (Root?.IsReadOnly == true && Root?.IsLoading == false)
{
return true;
}
if (Parent?.IsReadOnly == true)
{
return true;
}
if (LockObjectViewModel?.LockObject.FirstOrDefault(p => p.LockFlag == LockFlag.All)?.IsChecked == true)
{
return true;
@@ -170,10 +182,15 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get
{
if (Parent?.IsHitTestVisible == false)
{
return false;
}
return _isHitTestVisible;
}
set
{
{
if (SetProperty(ref _isHitTestVisible, value))
{
RaisePropertyChanged("IsReadOnly");