Files
Axi_Omron/src/AxiOmron.PcbCheck/DesignTime/DesignTimeViewModelLocator.cs
yunxiao.zhu 27e2c9d5d0 ✨ feat(*): 更新 PLC 相关功能与配置
- 在 appConfig.json 中添加 EndianFormat 配置项并更新相关输入输出地址
- 修改 ResultCode 类型为 short,确保与 PLC 通信一致
- 新增 DesignTimePlcService 以支持设计时的 PLC 测试写入功能
- 更新 SystemSettingViewModel 和 DashboardPage 以支持手动测试写入
- 调整多个视图模型和服务以适应新的 PLC 写入逻辑
- 更新相关单元测试以验证新功能的正确性
2026-06-02 17:26:24 +08:00

44 lines
1.9 KiB
C#

using AxiOmron.PcbCheck.Options;
using AxiOmron.PcbCheck.Services.Interfaces;
using AxiOmron.PcbCheck.ViewModels;
namespace AxiOmron.PcbCheck.DesignTime;
/// <summary>
/// 为 XAML 设计器提供基于真实 ViewModel 的设计时定位器。
/// </summary>
public sealed class DesignTimeViewModelLocator
{
private readonly DesignTimeAppStateStore _appStateStore = new();
private readonly DesignTimeDispatcherService _dispatcherService = new();
private readonly DesignTimeWorkflowControlService _workflowControlService = new();
private readonly DesignTimeAppConfigService _appConfigService = new();
private readonly DesignTimeAdminUnlockDialogService _adminUnlockDialogService = new();
private readonly DesignTimeSftpLookupService _sftpLookupService = new();
private readonly DesignTimePlcService _plcService = new();
private MainWindowViewModel? _mainWindowViewModel;
private SystemSettingViewModel? _systemSettingViewModel;
/// <summary>
/// 获取首页设计时视图模型。
/// </summary>
public MainWindowViewModel MainWindowViewModel
=> _mainWindowViewModel ??= CreateMainWindowViewModel();
/// <summary>
/// 获取系统设置设计时视图模型。
/// </summary>
public SystemSettingViewModel SystemSettingViewModel
=> _systemSettingViewModel ??= new SystemSettingViewModel(_appConfigService, _sftpLookupService, _appStateStore, _dispatcherService, _plcService);
/// <summary>
/// 创建首页设计时视图模型。
/// </summary>
/// <returns>填充了设计时演示数据的真实视图模型实例。</returns>
private MainWindowViewModel CreateMainWindowViewModel()
{
AppConfig config = _appConfigService.Load();
return new MainWindowViewModel(_appStateStore, _dispatcherService, _workflowControlService, config, _adminUnlockDialogService);
}
}