diff --git a/CRSim.ScreenSimulator/Converters/TrainStateColorConverter.cs b/CRSim.ScreenSimulator/Converters/TrainStateColorConverter.cs index 67b4850..dc2f02a 100644 --- a/CRSim.ScreenSimulator/Converters/TrainStateColorConverter.cs +++ b/CRSim.ScreenSimulator/Converters/TrainStateColorConverter.cs @@ -19,6 +19,10 @@ namespace CRSim.ScreenSimulator.Converters var serviceProvider = (IServiceProvider)Application.Current.Resources["ServiceProvider"]; _timeService = serviceProvider.GetRequiredService(); _settings = serviceProvider.GetRequiredService().GetSettings(); + if (values[0] != null && values[1] == null) + { + return WaitingColor; + } if (values[1] is DateTime departureTime && departureTime !=new DateTime()) { if (values[0] is DateTime) diff --git a/CRSim.ScreenSimulator/Converters/TrainStateConverter.cs b/CRSim.ScreenSimulator/Converters/TrainStateConverter.cs index a11b893..87ebd50 100644 --- a/CRSim.ScreenSimulator/Converters/TrainStateConverter.cs +++ b/CRSim.ScreenSimulator/Converters/TrainStateConverter.cs @@ -11,6 +11,9 @@ namespace CRSim.ScreenSimulator.Converters { private ITimeService _timeService; private Settings _settings; + public string DisplayMode { get; set; } = "Normal"; + public string ArrivedText { get; set; } = "列车已到达"; + public string ArrivingText { get; set; } = "正点"; public string WaitingText { get; set; } = "候车"; public string CheckInText { get; set; } = "正在检票"; public string StopCheckInText { get; set; } = "停止检票"; @@ -19,6 +22,13 @@ namespace CRSim.ScreenSimulator.Converters var serviceProvider = (IServiceProvider)Application.Current.Resources["ServiceProvider"]; _timeService = serviceProvider.GetRequiredService(); _settings = serviceProvider.GetRequiredService().GetSettings(); + if (DisplayMode == "Arrive" || values[1] == null) + { + if (values[0] is DateTime arriveTime) + { + return _timeService.GetDateTimeNow() > arriveTime ? ArrivedText : ArrivingText; + } + } if (values[1] is DateTime departureTime && departureTime != new DateTime()) { if (values[0] is DateTime) diff --git a/CRSim.ScreenSimulator/ViewModels/Ankang/ExitScreenViewModel.cs b/CRSim.ScreenSimulator/ViewModels/Ankang/ExitScreenViewModel.cs index 53d93a2..6418e38 100644 --- a/CRSim.ScreenSimulator/ViewModels/Ankang/ExitScreenViewModel.cs +++ b/CRSim.ScreenSimulator/ViewModels/Ankang/ExitScreenViewModel.cs @@ -33,7 +33,6 @@ namespace CRSim.ScreenSimulator.ViewModels.Ankang { int pageCount = (int)Math.Ceiling((double)TrainInfo.Count / (ItemsPerPage * PageCount)); LeftScreen.Clear(); - RightScreen.Clear(); int startIndex = CurrentPageIndex * ItemsPerPage * PageCount; var leftItems = TrainInfo.Skip(startIndex).Take(ItemsPerPage).ToList(); while (leftItems.Count < ItemsPerPage) // Fill up with new object() if not enough items @@ -44,18 +43,6 @@ namespace CRSim.ScreenSimulator.ViewModels.Ankang { LeftScreen.Add(item); } - - // Get the slice for the right screen (next 12) - var rightItems = TrainInfo.Skip(startIndex + ItemsPerPage).Take(ItemsPerPage).ToList(); - while (rightItems.Count < ItemsPerPage) // Fill up with new object() if not enough items - { - rightItems.Add(new TrainInfo()); - } - foreach (var item in rightItems) - { - RightScreen.Add(item); - } - CurrentPageIndex = CurrentPageIndex + 1 >= Math.Min(_settings.MaxPages, pageCount) ? 0 : CurrentPageIndex + 1; }); } diff --git a/CRSim.ScreenSimulator/Views/Ankang/ExitScreenView.xaml b/CRSim.ScreenSimulator/Views/Ankang/ExitScreenView.xaml index c23c1a3..5bbc08f 100644 --- a/CRSim.ScreenSimulator/Views/Ankang/ExitScreenView.xaml +++ b/CRSim.ScreenSimulator/Views/Ankang/ExitScreenView.xaml @@ -16,7 +16,7 @@ - +