功能增强:添加 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 的映射关系
This commit is contained in:
2025-10-02 18:34:23 +08:00
parent 59637ed0a6
commit e5e2e8de5b
8 changed files with 164 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.Concurrent;
using AutoMapper;
using DMS.Application.DTOs;
using DMS.Application.Events;
using DMS.Application.Interfaces;
@@ -15,17 +16,20 @@ public class VariableManagementService : IVariableManagementService
{
private readonly IVariableAppService _variableAppService;
private readonly IEventService _eventService;
private readonly IMapper _mapper;
private readonly IAppDataStorageService _appDataStorageService;
private readonly IDataProcessingService _dataProcessingService;
public VariableManagementService(IVariableAppService variableAppService,
IEventService eventService,
IMapper mapper,
IAppDataStorageService appDataStorageService,
IDataProcessingService dataProcessingService)
{
_variableAppService = variableAppService;
_eventService = eventService;
_mapper = mapper;
_appDataStorageService = appDataStorageService;
_dataProcessingService = dataProcessingService;
}
@@ -116,7 +120,12 @@ public class VariableManagementService : IVariableManagementService
variableTableDto = variableTable;
}
_appDataStorageService.Variables.AddOrUpdate(variableDto.Id, variableDto, (key, oldValue) => variableDto);
if (_appDataStorageService.Variables.TryGetValue(variableDto.Id,out var mVariableDto))
{
_mapper.Map(variableDto, mVariableDto);
}
// _appDataStorageService.Variables.AddOrUpdate(variableDto.Id, variableDto, (key, oldValue) => variableDto);
_eventService.RaiseVariableChanged(
this, new VariableChangedEventArgs(DataChangeType.Updated, variableDto, variableTableDto));
}