Files
CRSim/CRSim.ScreenSimulator/ViewModels/Beijing/ArrivalScreenViewModel.cs

37 lines
1.2 KiB
C#

using CRSim.Core.Models;
using CRSim.Core.Services;
using CRSim.ScreenSimulator.Models;
using System.Collections.ObjectModel;
using System.Windows;
namespace CRSim.ScreenSimulator.ViewModels.Beijing
{
public class ArrivalScreenViewModel : ScreenViewModel
{
public ObservableCollection<TrainInfo> Screen { get; set; } = [];
public ArrivalScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
StationType = StationType.Departure;
timeService.RefreshSecondsElapsed += RefreshDisplay;
Initialize();
}
private async void Initialize()
{
ItemsPerPage = 2;
await WaitForDataLoadAsync();
RefreshDisplay(null,null);
}
private void RefreshDisplay(object? sender, EventArgs e)
{
Application.Current.Dispatcher.Invoke(() =>
{
Screen.Clear();
for (int i = 0; i < ItemsPerPage; i++)
{
Screen.Add(TrainInfo.Count > i ? TrainInfo[i] : new());
}
});
}
}
}