Files
DMS/DMS.WPF/ViewModels/Dialogs/InputDialogViewModel.cs
David P.G e5e2e8de5b 功能增强:添加 InputDialog 并改进变量管理功能
- 新增 InputDialog 组件:
     - 添加了 InputDialog.xaml 和 InputDialog.xaml.cs 文件
     - 创建了 InputDialogViewModel.cs,继承自 DialogViewModelBase<string?>
     - 实现了可重用的输入对话框,支持自定义标题、消息、标签和占位符

   - 完善变量管理服务:
     - 在 MappingProfile.cs 中添加了 VariableDto 到 VariableDto 的映射配置
     - 在 VariableManagementService.cs 中注入 IMapper 依赖项
     - 修改了 UpdateVariablesAsync 方法,使用 AutoMapper 进行更安全的更新操作

   - 扩展变量表功能:
     - 在 VariableTableViewModel.cs 中添加了 ModifyConversionFormula 命令
     - 实现了批量修改变量转换公式功能,支持用户通过对话框输入新公式
     - 添加了相应的 UI 通知和错误处理
     - 在 VariableTableView.xaml 中添加了"修改数值转换公式"菜单项

   - 集成 InputDialog 到对话框服务:
     - 在 DialogService.cs 中注册了 InputDialogViewModel 和 InputDialog 的映射关系
2025-10-02 18:34:23 +08:00

64 lines
1.6 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
namespace DMS.WPF.ViewModels.Dialogs;
public partial class InputDialogViewModel : DialogViewModelBase<string?>
{
[ObservableProperty]
private string _message = string.Empty;
[ObservableProperty]
private string _inputLabel = "输入";
[ObservableProperty]
private string _inputPlaceholder = "请输入...";
[ObservableProperty]
private string? _inputText;
[ObservableProperty]
private string _primaryButtonText = "确定";
[ObservableProperty]
private string _closeButtonText = "取消";
public InputDialogViewModel(string title, string message)
{
Title = title;
Message = message;
}
public InputDialogViewModel(string title, string message, string inputLabel) : this(title, message)
{
InputLabel = inputLabel;
}
public InputDialogViewModel(string title, string message, string inputLabel, string inputPlaceholder) : this(title, message, inputLabel)
{
InputPlaceholder = inputPlaceholder;
}
public InputDialogViewModel(string title, string message, string inputLabel, string inputPlaceholder, string? defaultValue) : this(title, message, inputLabel, inputPlaceholder)
{
InputText = defaultValue;
}
public InputDialogViewModel()
{
Title = "输入";
Message = "请输入信息:";
}
[RelayCommand]
private void Confirm()
{
Close(InputText);
}
[RelayCommand]
private void Cancel()
{
Close(null);
}
}