实现了远程属性更改、数据交互。

This commit is contained in:
fengjiayi
2024-10-20 21:59:42 +08:00
parent e38833a58c
commit 838158f446
28 changed files with 961 additions and 637 deletions

View File

@@ -6,16 +6,18 @@ namespace Serein.Workbench.Node.ViewModel
{
public abstract class NodeControlViewModelBase : INotifyPropertyChanged
{
public NodeControlViewModelBase(NodeModelBase node)
public NodeControlViewModelBase(NodeModelBase nodeModel)
{
Node = node;
MethodDetails = Node.MethodDetails;
NodeModel = nodeModel;
MethodDetails = NodeModel.MethodDetails;
// 订阅来自 NodeModel 的通知事件
}
/// <summary>
/// 对应的节点实体类
/// </summary>
internal NodeModelBase Node { get; }
internal NodeModelBase NodeModel { get; }
private bool isSelect;
@@ -37,12 +39,12 @@ namespace Serein.Workbench.Node.ViewModel
/// </summary>
public NodeDebugSetting DebugSetting
{
get => Node.DebugSetting;
get => NodeModel.DebugSetting;
set
{
if (value != null)
{
Node.DebugSetting = value;
NodeModel.DebugSetting = value;
OnPropertyChanged();
}
}
@@ -53,12 +55,12 @@ namespace Serein.Workbench.Node.ViewModel
/// </summary>
public MethodDetails MethodDetails
{
get => Node.MethodDetails;
get => NodeModel.MethodDetails;
set
{
if(value != null)
{
Node.MethodDetails = value;
NodeModel.MethodDetails = value;
OnPropertyChanged();
}
}
@@ -78,35 +80,12 @@ namespace Serein.Workbench.Node.ViewModel
}
}
/// <summary>
///
/// </summary>
public event PropertyChangedEventHandler? PropertyChanged;
/// <summary>
///
/// </summary>
/// <param name="propertyName"></param>
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
/// <summary>
///
/// </summary>
public void Selected()
{
IsSelect = true;
}
/// <summary>
///
/// </summary>
public void CancelSelect()
{
IsSelect = false;
}
}
}

View File

@@ -34,7 +34,7 @@ namespace Serein.Workbench.Node.View
/// <param name="node"></param>
public void AddCondition(NodeControlBase node)
{
((CompositeConditionNode)ViewModel.Node).AddNode((SingleConditionNode)node.ViewModel.Node);
((CompositeConditionNode)ViewModel.NodeModel).AddNode((SingleConditionNode)node.ViewModel.NodeModel);
this.Width += node.Width;
this.Height += node.Height;