Files
serein-flow/Serein.Workbench.Avalonia/Custom/ViewModels/ParameterDetailsViewModel.cs

75 lines
2.0 KiB
C#

using Avalonia.Controls;
using Avalonia;
using CommunityToolkit.Mvvm.ComponentModel;
using Serein.Library;
using Serein.Workbench.Avalonia.Custom.Views;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using Serein.Workbench.Avalonia.ViewModels;
namespace Serein.Workbench.Avalonia.Custom.ViewModels
{
internal partial class ParameterDetailsViewModel : ViewModelBase
{
public ParameterDetails ParameterDetails { get; set; }
public ParameterDetailsViewModel()
{
}
public ParameterDetailsViewModel(ParameterDetails parameterDetails)
{
ParameterDetails = parameterDetails;
RefreshIsVisible();
// 监视“是否为显式参数”更改
ParameterDetails.PropertyChanged += (o, e) =>
{
if (nameof(ParameterDetails.IsExplicitData).Equals(e.PropertyName))
RefreshIsVisible();
};
}
private void RefreshIsVisible()
{
if (!ParameterDetails.IsExplicitData)
{
// 并非显式设置参数
IsVisibleA = true;
IsVisibleB = false;
IsVisibleC = false;
return;
}
if (ParameterDetails.InputType == ParameterValueInputType.Input )
{
// 值类型
IsVisibleA = false;
IsVisibleB = true;
IsVisibleC = false;
}
else
{
// 选项类型
IsVisibleA = false;
IsVisibleB = false;
IsVisibleC = true;
}
}
[ObservableProperty]
private bool isVisibleA;
[ObservableProperty]
private bool isVisibleB;
[ObservableProperty]
private bool isVisibleC;
}
}