From 4b3fd352b31491e1f548e9c5fac7988fefce3320 Mon Sep 17 00:00:00 2001 From: denglihong2007 <2639367181@qq.com> Date: Fri, 18 Apr 2025 23:39:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=88=97=E8=BD=A6?= =?UTF-8?q?=E5=B7=B2=E5=88=B0=E8=BE=BE=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Converters/TrainStateColorConverter.cs | 4 ++++ .../Converters/TrainStateConverter.cs | 10 ++++++++++ .../ViewModels/Ankang/ExitScreenViewModel.cs | 13 ------------- .../Views/Ankang/ExitScreenView.xaml | 10 ++++++++-- 4 files changed, 22 insertions(+), 15 deletions(-) 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 @@ - +