mirror of
https://github.com/denglihong2007/CRSim
synced 2026-08-05 08:55:52 +08:00
feat: 添加列车已到达状态
This commit is contained in:
@@ -19,6 +19,10 @@ namespace CRSim.ScreenSimulator.Converters
|
||||
var serviceProvider = (IServiceProvider)Application.Current.Resources["ServiceProvider"];
|
||||
_timeService = serviceProvider.GetRequiredService<ITimeService>();
|
||||
_settings = serviceProvider.GetRequiredService<ISettingsService>().GetSettings();
|
||||
if (values[0] != null && values[1] == null)
|
||||
{
|
||||
return WaitingColor;
|
||||
}
|
||||
if (values[1] is DateTime departureTime && departureTime !=new DateTime())
|
||||
{
|
||||
if (values[0] is DateTime)
|
||||
|
||||
@@ -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<ITimeService>();
|
||||
_settings = serviceProvider.GetRequiredService<ISettingsService>().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)
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
|
||||
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
|
||||
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringTimeConverter" Format="yyyy-MM-dd HH:mm:ss" />
|
||||
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正点"/>
|
||||
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正点" DisplayMode="Arrive"/>
|
||||
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter" WaitingColor="#76C1FF"/>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="Padding" Value="0"/>
|
||||
@@ -130,6 +130,13 @@
|
||||
</DataGridTextColumn>
|
||||
|
||||
<DataGridTextColumn MinWidth="180">
|
||||
<DataGridTextColumn.Binding>
|
||||
<MultiBinding Mode="OneWay" Converter="{StaticResource TrainStateConverter}">
|
||||
<Binding Path="ArrivalTime" />
|
||||
<Binding Path="DepartureTime" />
|
||||
<Binding Path="State" />
|
||||
</MultiBinding>
|
||||
</DataGridTextColumn.Binding>
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}" Margin="0,0,0,1">
|
||||
@@ -139,7 +146,6 @@
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
<DataGridTextColumn.ElementStyle>
|
||||
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
|
||||
<Setter Property="Text" Value="正点"/>
|
||||
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
|
||||
</Style>
|
||||
</DataGridTextColumn.ElementStyle>
|
||||
|
||||
Reference in New Issue
Block a user