feat: 集成化的窗口管理器

This commit is contained in:
denglihong2007
2025-08-02 20:29:19 +08:00
parent c0ce1bd31e
commit e69be43249
11 changed files with 175 additions and 75 deletions

View File

@@ -4,12 +4,13 @@ using CRSim.ScreenSimulator.Models;
using System.Windows;
using System.Collections.ObjectModel;
using CRSim.Core.Abstractions;
using CRSim.ScreenSimulator.Abstractions;
namespace CRSim.ScreenSimulator.ViewModels
{
public partial class BaseScreenViewModel : ObservableObject
public partial class BaseScreenViewModel : ObservableObject,IScreenViewModel
{
public readonly ITimeService TimeService;
public ITimeService TimeService { get; set; }
public readonly Settings _settings;
public readonly TaskCompletionSource<bool> DataLoaded = new();
[ObservableProperty]
@@ -24,6 +25,8 @@ namespace CRSim.ScreenSimulator.ViewModels
private string _thisPlatform;
[ObservableProperty]
private string _thisTicketCheck;
[ObservableProperty]
private Uri _video;
public ObservableCollection<TrainInfo> ScreenA { get; private set; } = [];
public ObservableCollection<TrainInfo> ScreenB { get; private set; } = [];
public System.Windows.Threading.Dispatcher UIDispatcher { get; set; }

View File

@@ -1,13 +1,14 @@
using CommunityToolkit.Mvvm.ComponentModel;
using CRSim.Core.Abstractions;
using CRSim.Core.Models;
using CRSim.ScreenSimulator.Abstractions;
using CRSim.ScreenSimulator.Models;
namespace CRSim.ScreenSimulator.ViewModels
{
public partial class MetroPlatformScreenViewModel : ObservableObject
public partial class MetroPlatformScreenViewModel : ObservableObject, IScreenViewModel
{
public readonly ITimeService TimeService;
public ITimeService TimeService { get; set; }
public readonly Settings _settings;
[ObservableProperty]
private DateTime _currentTime = new();
@@ -19,6 +20,8 @@ namespace CRSim.ScreenSimulator.ViewModels
private string _text;
[ObservableProperty]
private Uri _video;
[ObservableProperty]
public int _location;
public System.Windows.Threading.Dispatcher UIDispatcher { get; set; }
public List<TrainInfo> TrainInfos { get; set; } = [];
public MetroPlatformScreenViewModel(ITimeService timeService, ISettingsService settingsService)