返回提交历史
Modified
SpaceEngineersBlueprintEditor/Implements/Services/AutoNavigationService.cs
+1
-0
Added
SpaceEngineersBlueprintEditor/Implements/Services/LoadingService.cs
+29
-0
Added
SpaceEngineersBlueprintEditor/Implements/Services/TabViewTitleService.cs
+12
-0
Added
SpaceEngineersBlueprintEditor/Interface/Services/ILoadingService.cs
+8
-0
Added
SpaceEngineersBlueprintEditor/Interface/Services/ITabViewTitleService.cs
+10
-0
Modified
SpaceEngineersBlueprintEditor/Utilities/Helpers/FileHelper.cs
+1
-1
Modified
SpaceEngineersBlueprintEditor/ViewModels/AppShellPageViewModel.cs
+1
-0
Modified
SpaceEngineersBlueprintEditor/ViewModels/BlueprintDetailPageViewModel.cs
+10
-11
Modified
SpaceEngineersBlueprintEditor/ViewModels/BlueprintEditPageViewModel.cs
+34
-6
Modified
SpaceEngineersBlueprintEditor/ViewModels/BlueprintEditSubPageViewModel.cs
+45
-15
Modified
SpaceEngineersBlueprintEditor/ViewModels/BlueprintsViewPageViewModel.cs
+4
-4
Modified
SpaceEngineersBlueprintEditor/ViewModels/GameDefinitionsViewPageViewModel.cs
+3
-3
Modified
SpaceEngineersBlueprintEditor/ViewModels/MainPageViewModel.cs
+5
-8
Modified
SpaceEngineersBlueprintEditor/Views/AppShellPage.xaml
+11
-0
Modified
SpaceEngineersBlueprintEditor/Views/AppShellPage.xaml.cs
+1
-0
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintDetailPage.xaml
+51
-64
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintEditPage.xaml
+1
-1
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintEditPage.xaml.cs
+2
-0
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintEditSubPage.xaml
+70
-48
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintEditSubPage.xaml.cs
+9
-0
Modified
SpaceEngineersBlueprintEditor/Views/BlueprintsViewPage.xaml
+1
-1
Modified
SpaceEngineersBlueprintEditor/Views/GameDefinitionsViewPage.xaml
+30
-43
Modified
SpaceEngineersBlueprintEditor/Views/MainPage.xaml
+33
-46
SpaceEngineersModDev/SpaceEngineersBlueprintEditorInWinUI
修复部分bug
c054ba6
代码差异
23 个文件
+372
-251
@@ -39,6 +39,7 @@ internal class AutoNavigationService : GlobalServiceBase, IAutoNavigationService
39
39
40
40
public void NavigateTo(Type type, object? parameter = null, NavigationTransitionInfo? navigationTransitionInfo = null)
41
41
{
42
GlobalServiceManager.GetService<ILoadingService>()?.StopLoading();
42
43
if (frame?.SourcePageType != type || (frame.Content is Page page && !Equals(page.GetParameter(), parameter)))
43
44
frame?.Navigate(type, parameter, navigationTransitionInfo);
44
45
}
@@ -0,0 +1,29 @@
1
using SpaceEngineersBlueprintEditor.Interface.Services;
2
3
namespace SpaceEngineersBlueprintEditor.Implements.Services;
4
5
internal class LoadingService : GlobalServiceBase, ILoadingService
6
{
7
private Grid? _loadingGrid;
8
private TextBlock? _textBlock;
9
public void Initialize(Grid loadingGrid, TextBlock textBlock)
10
{
11
_loadingGrid = loadingGrid;
12
_textBlock = textBlock;
13
}
14
15
public void StartLoading(string showText = "Loading...")
16
{
17
if (_loadingGrid is not null && _textBlock is not null)
18
{
19
_textBlock.Text = showText;
20
_loadingGrid.Visibility = Visibility.Visible;
21
}
22
}
23
24
public void StopLoading()
25
{
26
if (_loadingGrid is not null)
27
_loadingGrid.Visibility = Visibility.Collapsed;
28
}
29
}
@@ -0,0 +1,12 @@
1
using SpaceEngineersBlueprintEditor.Interface.Services;
2
using SpaceEngineersBlueprintEditor.Model;
3
using XFEExtension.NetCore.DelegateExtension;
4
5
namespace SpaceEngineersBlueprintEditor.Implements.Services;
6
7
internal class TabViewTitleService : GlobalServiceBase, ITabViewTitleService
8
{
9
public event XFEEventHandler<string, BlueprintModel>? ChangeTitleRequest;
10
11
public void SetTabViewTitle(string title, BlueprintModel blueprintModel) => ChangeTitleRequest?.Invoke(title, blueprintModel);
12
}
@@ -0,0 +1,8 @@
1
namespace SpaceEngineersBlueprintEditor.Interface.Services;
2
3
public interface ILoadingService : IGlobalService
4
{
5
void Initialize(Grid loadingGrid, TextBlock textBlock);
6
void StartLoading(string showText = "Loading...");
7
void StopLoading();
8
}
@@ -0,0 +1,10 @@
1
using SpaceEngineersBlueprintEditor.Model;
2
using XFEExtension.NetCore.DelegateExtension;
3
4
namespace SpaceEngineersBlueprintEditor.Interface.Services;
5
6
public interface ITabViewTitleService : IGlobalService
7
{
8
event XFEEventHandler<string, BlueprintModel> ChangeTitleRequest;
9
void SetTabViewTitle(string title, BlueprintModel blueprintModel);
10
}
@@ -36,7 +36,7 @@ public static class FileHelper
36
36
{
37
37
var currentDirectoryName = @$"{Path.GetDirectoryName(originalName)}\{Path.GetFileName(originalName)}_{currentNum}";
38
38
if (File.Exists(currentDirectoryName) || Directory.Exists(currentDirectoryName))
39
return GetCopyFileName(originalName, ++currentNum);
39
return GetCopyDirectoryName(originalName, ++currentNum);
40
40
return currentDirectoryName;
41
41
}
42
42
@@ -14,6 +14,7 @@ public partial class AppShellPageViewModel : ViewModelBase
14
14
public INavigationViewService NavigationViewService { get; set; } = new NavigationViewService();
15
15
public IBackgroundImageService BackgroundImageService { get; set; } = new BackgroundImageService();
16
16
public IMessageService MessageService { get; set; } = new MessageService();
17
public ILoadingService LoadingService { get; set; } = new LoadingService();
17
18
18
19
public AppShellPageViewModel() => NavigationViewService.NavigationService.Navigated += NavigationService_Navigated;
19
20
@@ -31,11 +31,10 @@ public partial class BlueprintDetailPageViewModel : ViewModelBase
31
31
private string totalGridNumber = "网格总数:加载中...";
32
32
[ObservableProperty]
33
33
private string totalCubeNumber = "方块总数:加载中...";
34
[ObservableProperty]
35
private bool isProgressRingVisible = true;
36
34
private BlueprintInfoViewData? currentBlueprintInfoViewData;
37
35
private MyObjectBuilder_Definitions? currentDefinitions;
38
36
private MyObjectBuilder_ShipBlueprintDefinition? currentBlueprint;
37
private readonly ILoadingService? loadingService = GlobalServiceManager.GetService<ILoadingService>();
39
38
private readonly INavigationViewService? navigationViewService = GlobalServiceManager.GetService<INavigationViewService>();
40
39
private readonly IMessageService? messageService = GlobalServiceManager.GetService<IMessageService>();
41
40
public ObservableCollection<string> DLCList { get; } = [];
@@ -49,16 +48,9 @@ public partial class BlueprintDetailPageViewModel : ViewModelBase
49
48
{
50
49
if (e is null) return;
51
50
if (navigationViewService is not null) navigationViewService.Header = e.Name;
52
IsProgressRingVisible = true;
51
loadingService?.StartLoading("Loading blueprint...");
53
52
BackgroundImageService?.SetBackgroundImage(e.BlueprintImage);
54
53
await Helper.Wait(() => SpaceEngineersHelper.IsLoadComplete);
55
if (!NavigationParameterService.SameAsLast)
56
{
57
currentBlueprintInfoViewData = e;
58
currentDefinitions = await SpaceEngineersHelper.LoadBlueprintAsync(currentBlueprintInfoViewData.FilePath);
59
if (currentDefinitions is not null && currentDefinitions.ShipBlueprints is not null && currentDefinitions.ShipBlueprints.Length > 0)
60
currentBlueprint = currentDefinitions.ShipBlueprints[0];
61
}
62
54
AuthorName = "蓝图作者:加载中...";
63
55
BlueprintFileSize = "蓝图大小:加载中...";
64
56
BlueprintPath = "蓝图路径:加载中...";
@@ -69,6 +61,13 @@ public partial class BlueprintDetailPageViewModel : ViewModelBase
69
61
DLCList.Clear();
70
62
CubeGridList.Clear();
71
63
ComponentList.Clear();
64
if (!NavigationParameterService.SameAsLast)
65
{
66
currentBlueprintInfoViewData = e;
67
currentDefinitions = await SpaceEngineersHelper.LoadBlueprintAsync(currentBlueprintInfoViewData.FilePath);
68
if (currentDefinitions is not null && currentDefinitions.ShipBlueprints is not null && currentDefinitions.ShipBlueprints.Length > 0)
69
currentBlueprint = currentDefinitions.ShipBlueprints[0];
70
}
72
71
if (e.NoBlueprint)
73
72
{
74
73
messageService?.ShowMessage("该蓝图不包含蓝图文件(bp.sbc)", "警告", InfoBarSeverity.Warning);
@@ -92,7 +91,7 @@ public partial class BlueprintDetailPageViewModel : ViewModelBase
92
91
{
93
92
messageService?.ShowMessage("未能加载蓝图", "错误", InfoBarSeverity.Error);
94
93
}
95
IsProgressRingVisible = false;
94
loadingService?.StopLoading();
96
95
}
97
96
98
97
private void CalculateCubeGrids()
@@ -17,8 +17,19 @@ public partial class BlueprintEditPageViewModel : ViewModelBase
17
17
public BlueprintModel? CurrentSelectedModel => SelectedTabViewItem is not null ? SelectedTabViewItem.Content is Frame frame ? frame.Content is BlueprintEditSubPage blueprintEditSubPage ? blueprintEditSubPage.Parameter : null : null : null;
18
18
public ObservableCollection<TabViewItem> TabViewItems { get; set; } = [];
19
19
public IBackgroundImageService? BackgroundImageService { get; set; } = GlobalServiceManager.GetService<IBackgroundImageService>();
20
public ITabViewTitleService TabViewTitleService { get; set; } = new TabViewTitleService();
20
21
public INavigationParameterService<BlueprintModel?> NavigationParameterService { get; set; } = new NavigationParameterService<BlueprintModel?>();
21
public BlueprintEditPageViewModel() => NavigationParameterService.ParameterChange += NavigationParameterService_ParameterChange;
22
public BlueprintEditPageViewModel()
23
{
24
NavigationParameterService.ParameterChange += NavigationParameterService_ParameterChange;
25
TabViewTitleService.ChangeTitleRequest += TabViewTitleService_ChangeTitleRequest;
26
}
27
28
private void TabViewTitleService_ChangeTitleRequest(string sender, BlueprintModel e)
29
{
30
if (GetCurrentItem(e) is TabViewItem tabViewItem)
31
tabViewItem.Header = sender;
32
}
22
33
23
34
partial void OnSelectedTabViewItemChanged(TabViewItem? value)
24
35
{
@@ -28,23 +39,40 @@ public partial class BlueprintEditPageViewModel : ViewModelBase
28
39
BackgroundImageService?.ResetBackground();
29
40
}
30
41
42
private TabViewItem? GetCurrentItem(BlueprintModel blueprintModel)
43
{
44
foreach (var tabViewItem in TabViewItems)
45
if (tabViewItem.Content is Frame frame && frame.Content is BlueprintEditSubPage blueprintEditSubPage && blueprintEditSubPage.Parameter == blueprintModel)
46
return tabViewItem;
47
return null;
48
}
49
31
50
private void NavigationParameterService_ParameterChange(object? sender, BlueprintModel? e)
32
51
{
33
if (e is not null || e is null && TabViewItems.Count == 0)
34
CreateTabViewItem(e);
52
if (e is not null)
53
{
54
if (GetCurrentItem(e) is TabViewItem tabViewItem)
55
SelectedTabViewItem = tabViewItem;
56
else
57
CreateTabViewItem(e);
58
}
59
else if (e is null && TabViewItems.Count == 0)
60
{
61
CreateTabViewItem(null);
62
}
35
63
}
36
64
37
private void CreateTabViewItem(BlueprintModel? blueprintModel)
65
public void CreateTabViewItem(BlueprintModel? blueprintModel)
38
66
{
39
67
var frame = new Frame();
40
68
var tabView = new TabViewItem
41
69
{
42
Header = blueprintModel?.ViewData?.Name ?? "未命名蓝图",
70
Header = "新的蓝图编辑页",
43
71
Content = frame
44
72
};
45
frame.Navigate(typeof(BlueprintEditSubPage), blueprintModel);
46
73
TabViewItems.Add(tabView);
47
74
SelectedTabViewItem = tabView;
75
frame.Navigate(typeof(BlueprintEditSubPage), blueprintModel);
48
76
}
49
77
50
78
[RelayCommand]
@@ -5,6 +5,7 @@ using SpaceEngineersBlueprintEditor.Implements.Services;
5
5
using SpaceEngineersBlueprintEditor.Interface.Services;
6
6
using SpaceEngineersBlueprintEditor.Model;
7
7
using SpaceEngineersBlueprintEditor.Utilities;
8
using SpaceEngineersBlueprintEditor.Views;
8
9
using System.Collections.ObjectModel;
9
10
using System.Diagnostics;
10
11
using VRage.Game;
@@ -16,14 +17,14 @@ namespace SpaceEngineersBlueprintEditor.ViewModels;
16
17
17
18
public partial class BlueprintEditSubPageViewModel : ViewModelBase
18
19
{
19
[ObservableProperty]
20
private bool isProgressRingVisible;
21
20
[ObservableProperty]
22
21
private bool isCubeGridListVisible;
23
22
[ObservableProperty]
24
23
private bool isShipBlueprintPropertyVisible;
25
24
[ObservableProperty]
26
private string loadingText = string.Empty;
25
private bool isContentGridVisible = false;
26
[ObservableProperty]
27
private bool isInitialGridVisible = true;
27
28
[ObservableProperty]
28
29
private string searchText = string.Empty;
29
30
[ObservableProperty]
@@ -31,12 +32,14 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
31
32
private BlueprintModel? currentBlueprintModel;
32
33
private MyObjectBuilder_Definitions? currentDefinitions;
33
34
private MyObjectBuilder_ShipBlueprintDefinition? currentShipBlueprint;
35
private readonly ILoadingService? loadingService = GlobalServiceManager.GetService<ILoadingService>();
34
36
private readonly IMessageService? messageService = GlobalServiceManager.GetService<IMessageService>();
35
37
private readonly INavigationViewService? navigationViewService = GlobalServiceManager.GetService<INavigationViewService>();
36
public bool IsPageLoaded { get; set; }
38
private readonly ITabViewTitleService? tabViewTitleService = GlobalServiceManager.GetService<ITabViewTitleService>();
37
39
public ObservableCollection<BlueprintGroupList> BlueprintCubeGridList { get; } = [];
38
40
public IBackgroundImageService? BackgroundImageService { get; set; } = GlobalServiceManager.GetService<IBackgroundImageService>();
39
41
public INavigationParameterService<BlueprintModel> NavigationParameterService { get; set; } = new NavigationParameterService<BlueprintModel>();
42
public IFileDropService FileDropService { get; set; } = new BlueprintDropService();
40
43
public ITreeViewService TreeViewService { get; set; } = new TreeViewService();
41
44
public ISelectorBarService SelectorBarService { get; set; } = new SelectorBarService();
42
45
@@ -44,6 +47,20 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
44
47
{
45
48
NavigationParameterService.ParameterChange += NavigationParameterService_ParameterChange;
46
49
SelectorBarService.SelectionChanged += SelectorBarService_SelectionChanged;
50
FileDropService.Drop += FileDropService_Drop;
51
}
52
53
private async void FileDropService_Drop(object? sender, (string, DragEventArgs) e)
54
{
55
loadingService?.StartLoading("Loading definitions...");
56
if (File.Exists(e.Item1) && await SpaceEngineersHelper.LoadBlueprintModel(e.Item1) is BlueprintModel blueprintModel)
57
{
58
NavigationParameterService.Parameter = blueprintModel;
59
if (blueprintModel.ViewData is not null)
60
tabViewTitleService?.SetTabViewTitle(blueprintModel.ViewData.Name, blueprintModel);
61
await SetDefinitions(blueprintModel.BlueprintDefinitions);
62
}
63
loadingService?.StopLoading();
47
64
}
48
65
49
66
partial void OnSearchTextChanged(string value) => SearchCubeGrids(value);
@@ -58,8 +75,10 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
58
75
if (currentDefinitions.ShipBlueprints is not null && currentDefinitions.ShipBlueprints.Length > 0)
59
76
{
60
77
currentShipBlueprint = currentDefinitions.ShipBlueprints[0];
61
if(IsPageLoaded)
62
await LoadByName("Grids");
78
IsContentGridVisible = true;
79
IsInitialGridVisible = false;
80
await Task.Delay(200);
81
await LoadByName("Grids");
63
82
}
64
83
else
65
84
{
@@ -80,6 +99,8 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
80
99
if (currentBlueprintModel.ViewData is not null)
81
100
BackgroundImageService?.SetBackgroundImage(currentBlueprintModel.ViewData.BlueprintImage);
82
101
if (navigationViewService is not null) navigationViewService.Header = null;
102
if (e.ViewData is not null)
103
tabViewTitleService?.SetTabViewTitle(e.ViewData.Name, e);
83
104
if (e.BlueprintDefinitions is not null)
84
105
{
85
106
await SetDefinitions(e.BlueprintDefinitions);
@@ -93,8 +114,7 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
93
114
private async Task LoadByName(string caseName)
94
115
{
95
116
if (currentShipBlueprint is null) return;
96
LoadingText = "Loading definitions...";
97
IsProgressRingVisible = true;
117
loadingService?.StartLoading("Loading definitions...");
98
118
await Task.Delay(50);
99
119
switch (caseName)
100
120
{
@@ -111,7 +131,7 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
111
131
default:
112
132
break;
113
133
}
114
IsProgressRingVisible = false;
134
loadingService?.StopLoading();
115
135
}
116
136
117
137
private void LoadBlueprintPropertyDefinitions()
@@ -180,6 +200,7 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
180
200
[RelayCommand]
181
201
async Task OpenBlueprint()
182
202
{
203
loadingService?.StartLoading("Loading definitions...");
183
204
var openPicker = new FileOpenPicker();
184
205
InitializeWithWindow.Initialize(openPicker, WindowNative.GetWindowHandle(App.MainWindow));
185
206
openPicker.ViewMode = PickerViewMode.List;
@@ -189,25 +210,30 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
189
210
if (await SpaceEngineersHelper.LoadBlueprintModel(file.Path) is BlueprintModel blueprintModel)
190
211
{
191
212
NavigationParameterService.Parameter = blueprintModel;
213
if (blueprintModel.ViewData is not null)
214
tabViewTitleService?.SetTabViewTitle(blueprintModel.ViewData.Name, blueprintModel);
192
215
await SetDefinitions(blueprintModel.BlueprintDefinitions);
193
216
}
194
217
}
218
loadingService?.StopLoading();
195
219
}
196
220
197
221
[RelayCommand]
198
222
void OpenInFolder()
199
223
{
200
224
if (currentBlueprintModel is not null && currentBlueprintModel.ViewData is not null)
201
Process.Start("explorer.exe", currentBlueprintModel.ViewData.FilePath);
225
Process.Start("explorer.exe", Path.GetDirectoryName(currentBlueprintModel.ViewData.FilePath) ?? string.Empty);
202
226
else
203
227
messageService?.ShowMessage("无法找到文件", "警告", InfoBarSeverity.Warning);
204
228
}
205
229
230
[RelayCommand]
231
void ViewBlueprintsList() => navigationViewService?.NavigateTo<BlueprintsViewPage>("Local");
232
206
233
[RelayCommand]
207
234
async Task Save()
208
235
{
209
LoadingText = "Saving blueprint...";
210
IsProgressRingVisible = true;
236
loadingService?.StartLoading("Saving blueprint...");
211
237
var savePicker = new FileSavePicker();
212
238
InitializeWithWindow.Initialize(savePicker, WindowNative.GetWindowHandle(App.MainWindow));
213
239
savePicker.FileTypeChoices.Add(new("Blueprint file", [".sbc"]));
@@ -251,16 +277,20 @@ public partial class BlueprintEditSubPageViewModel : ViewModelBase
251
277
}
252
278
else if (result.StartsWith("Error:"))
253
279
{
254
messageService?.ShowMessage(result.Replace("Error:", string.Empty), "错误", InfoBarSeverity.Error);
280
messageService?.ShowMessage(result.Replace("Error:", string.Empty), "失败", InfoBarSeverity.Error);
255
281
}
256
282
}
283
else
284
{
285
messageService?.ShowMessage("保存失败:未知原因", "失败", InfoBarSeverity.Error);
286
}
257
287
}
258
288
catch (Exception ex)
259
289
{
260
Console.WriteLine(ex.ToString());
290
messageService?.ShowMessage($"保存失败:{ex.Message}", "失败", InfoBarSeverity.Error);
261
291
}
262
292
}
263
IsProgressRingVisible = false;
293
loadingService?.StopLoading();
264
294
}
265
295
266
296
[RelayCommand]
@@ -12,15 +12,15 @@ namespace SpaceEngineersBlueprintEditor.ViewModels;
12
12
13
13
public partial class BlueprintsViewPageViewModel : ViewModelBase
14
14
{
15
private string currentParameter = "";
16
private BlueprintInfoViewData? currentBlueprintInfoViewData;
17
private readonly IMessageService? messageService = GlobalServiceManager.GetService<IMessageService>();
18
15
[ObservableProperty]
19
16
private string searchText = "";
20
17
[ObservableProperty]
21
18
private string copyFolderText = "";
22
19
[ObservableProperty]
23
20
private string deleteEnsureText = "";
21
private string currentParameter = "";
22
private BlueprintInfoViewData? currentBlueprintInfoViewData;
23
private readonly IMessageService? messageService = GlobalServiceManager.GetService<IMessageService>();
24
24
public INavigationParameterService<object> NavigationParameterService { get; set; } = new NavigationParameterService<object>();
25
25
public IDialogService DialogService { get; set; } = new DialogService();
26
26
public ObservableCollection<BlueprintInfoViewData> BlueprintInfoViewDataList { get; set; } = [];
@@ -52,7 +52,7 @@ public partial class BlueprintsViewPageViewModel : ViewModelBase
52
52
53
53
private async void NavigationParameterService_ParameterChange(object? sender, object? e)
54
54
{
55
if (e is string stringParameter)
55
if (e is string stringParameter && !currentParameter.Equals(stringParameter))
56
56
{
57
57
currentParameter = stringParameter;
58
58
await BlueprintsManager.LoadBlueprintsAsync();
@@ -19,14 +19,13 @@ public partial class GameDefinitionsViewPageViewModel : ViewModelBase
19
19
[ObservableProperty]
20
20
private string propertiesSearchText = "";
21
21
[ObservableProperty]
22
private bool isProgressRingVisible = true;
23
[ObservableProperty]
24
22
private bool isUIVisible = false;
25
23
[ObservableProperty]
26
24
private DefinitionViewData? selectedDefinitionViewData;
27
25
private string currentParameter = "";
28
26
private readonly List<DefinitionViewData> _definitions = [];
29
27
private readonly List<PropertyViewData> _propertiesInfo = [];
28
private readonly ILoadingService? loadingService = GlobalServiceManager.GetService<ILoadingService>();
30
29
public ObservableCollection<DefinitionViewData> Definitions { get; } = [];
31
30
public ObservableCollection<PropertyViewData> PropertiesInfo { get; } = [];
32
31
public INavigationParameterService<string> NavigationParameterService { get; } = new NavigationParameterService<string>();
@@ -68,11 +67,12 @@ public partial class GameDefinitionsViewPageViewModel : ViewModelBase
68
67
{
69
68
if (e is null || NavigationParameterService.SameAsLast)
70
69
return;
70
loadingService?.StartLoading("Loading blueprint...");
71
71
currentParameter = e;
72
72
await Helper.Wait(() => Initializer.IsDefinitionsLoadComplete && DefinitionPropertiesDisplayService.IsPageLoaded);
73
73
LoadDefinitions(GetCurrentDefinitions(currentParameter));
74
74
IsUIVisible = true;
75
IsProgressRingVisible = false;
75
loadingService?.StopLoading();
76
76
DefinitionPropertiesDisplayService.Select(Definitions.First());
77
77
}
78
78