- 新增 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 的映射关系
64 lines
1.6 KiB
C#
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);
|
|
}
|
|
} |