using System; using Microsoft.Extensions.Logging; using AuroraDesk.Services; using ReactiveUI; namespace AuroraDesk.ViewModels; /// /// 应用程序级别的 ViewModel,实现 IScreen 接口 /// public class AppViewModel : ReactiveObject, IScreen { public RoutingState Router { get; } public MainWindowViewModel MainWindowViewModel { get; } public AppViewModel( ILogger? logger = null, IDataService? dataService = null, IResourceService? resourceService = null) { Router = new RoutingState(); // 使用依赖注入创建 MainWindowViewModel,传入自身作为 IScreen MainWindowViewModel = new MainWindowViewModel(this, logger, dataService, resourceService); } }