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