Add files via upload

This commit is contained in:
wxl0430
2025-03-02 15:01:17 +08:00
committed by GitHub
parent 680c6a2f46
commit c2b6e9efce
5 changed files with 57 additions and 7 deletions

View File

@@ -51,8 +51,8 @@
services.AddTransient<Views.Shanghai.OutsideScreenView>();
services.AddTransient<ViewModels.Hanzhong.PlatformScreenViewModel>();
services.AddTransient<Views.Hanzhong.PlatformScreenView>();
services.AddTransient<ViewModels.ZiBo.PrimaryScreenViewModel>();
services.AddTransient<Views.ZiBo.PrimaryScreenView>();
services.AddTransient<ViewModels.Zibo.PrimaryScreenViewModel>();
services.AddTransient<Views.Zibo.PrimaryScreenView>();
}).Build();
[STAThread]

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

View File

@@ -9,7 +9,7 @@
<LangVersion>13.0</LangVersion>
<StartupObject>CRSim.App</StartupObject>
<ApplicationIcon>Assets\CRSimIcon.ico</ApplicationIcon>
<Version>1.2.3.1</Version>
<Version>1.2.3.4</Version>
</PropertyGroup>
<ItemGroup>
@@ -89,7 +89,7 @@
<Compile Update="Views\Windows\Stations\Shanghai\OutsideScreenView.xaml.cs">
<SubType>Code</SubType>
</Compile>
<Compile Update="Views\Windows\Stations\ZiBo\PrimaryScreenView.xaml.cs">
<Compile Update="Views\Windows\Stations\Zibo\PrimaryScreenView.xaml.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup>

View File

@@ -87,11 +87,11 @@
]
},
{
"UniqueId": "ZiBo PrimaryScreen",
"UniqueId": "Zibo PrimaryScreen",
"Title": "淄博站主要看板",
"Station": "ZiBo",
"Station": "Zibo",
"StyleName": "PrimaryScreenView",
"ImagePath": "Assets/StyleImages/ZiBo/PrimaryScreen.png",
"ImagePath": "Assets/StyleImages/Zibo/PrimaryScreen.png",
"Parameters": [
"Station"
]

View File

@@ -0,0 +1,50 @@
namespace CRSim.ViewModels.Zibo
{
public class PrimaryScreenViewModel : ScreenViewModel
{
public ObservableCollection<TrainInfo> LeftScreen { get; private set; } = [];
public ObservableCollection<TrainInfo> RightScreen { get; private set; } = [];
public PrimaryScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
ItemsPerPage = 8;
PageCount = 2;
timeService.RefreshSecondsElapsed += RefreshDisplay;
Initialize();
}
private async void Initialize()
{
await WaitForDataLoadAsync();
RefreshDisplay(null,null);
}
private void RefreshDisplay(object? sender, EventArgs e)
{
Application.Current.Dispatcher.Invoke(() =>
{
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)
{
leftItems.Add(new TrainInfo());
}
foreach (var item in leftItems)
{
LeftScreen.Add(item);
}
var rightItems = TrainInfo.Skip(startIndex + ItemsPerPage).Take(ItemsPerPage).ToList();
while (rightItems.Count < ItemsPerPage)
{
rightItems.Add(new TrainInfo());
}
foreach (var item in rightItems)
{
RightScreen.Add(item);
}
CurrentPageIndex = CurrentPageIndex + 1 >= Math.Min(_settings.MaxPages, pageCount) ? 0 : CurrentPageIndex + 1;
});
}
}
}