Skip to content

Commit a05f1b4

Browse files
authored
Merge pull request PCL-Community#114 from LaoSparrow/feat-navigation
重构 NavigationService && 修复页面切换动画
2 parents a17639c + 26c7c4e commit a05f1b4

20 files changed

+354
-397
lines changed

PCL.Neo/App.axaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public override void OnFrameworkInitializationCompleted()
7272
DisableAvaloniaDataAnnotationValidation();
7373
desktop.MainWindow = new MainWindow { DataContext = vm };
7474
// 由于导航改成了异步方法,在构造函数中无法正常导向首页,需要在此处导向
75-
Ioc.Default.GetRequiredService<INavigationService>().GotoAsync<HomeViewModel>();
75+
Ioc.Default.GetRequiredService<INavigationService>().GoToAsync<HomeViewModel>().Wait(); // TODO: idk if this is appropriate
7676
}
7777

7878
base.OnFrameworkInitializationCompleted();
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using PCL.Neo.Services;
2+
using PCL.Neo.ViewModels;
3+
using System;
4+
5+
namespace PCL.Neo.Messages;
6+
7+
public class NavigationMessage(
8+
ViewModelBase? oldMainViewModel,
9+
ViewModelBase? newMainViewModel,
10+
ViewModelBase? oldSubViewModel,
11+
ViewModelBase? newSubViewModel,
12+
NavigationType navigationType)
13+
{
14+
public static class Channels
15+
{
16+
public static readonly Guid Navigating = Guid.NewGuid();
17+
public static readonly Guid Navigated = Guid.NewGuid();
18+
}
19+
20+
public bool IsMainViewModelChanged => oldMainViewModel != newMainViewModel;
21+
public ViewModelBase? OldMainViewModel => oldMainViewModel;
22+
public ViewModelBase? NewMainViewModel => newMainViewModel;
23+
public bool IsSubViewModelChanged => oldSubViewModel != newSubViewModel;
24+
public ViewModelBase? OldSubViewModel => oldSubViewModel;
25+
public ViewModelBase? NewSubViewModel => newSubViewModel;
26+
public NavigationType NavigationType => navigationType;
27+
}

PCL.Neo/Services/INavigationService.cs

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)