我正在创建我的第一个Prism / XF应用程序。主页面是MasterDetailPage。我已经读过要从母版页VM更改详细信息页面,我只需要从MasterPageViewModel调用NavigationService.NavigateAsync(“NewDetailPage”)。
当我这样做时,母版页会更改,并成为NewDetailPage。我想保留MasterDatilPage并更改它的详细信息页面。
这是我的App类
public partial class App : PrismApplication
{
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override void OnInitialized()
{
InitializeComponent();
NavigationService.NavigateAsync("MenuPrincipalPage/ClubHousePage");
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MenuPrincipalPage>();
Container.RegisterTypeForNavigation<ClubHousePage>();
Container.RegisterTypeForNavigation<AProposPage>();
}
}
这很有效。使用正确的master(MenuPrincipalPage)和正确的详细信息(ClubHousePage)启动应用程序。
我在MenuPrincipalPageViewModel(主页面VM)中尝试了一些东西。首先直接导航到详细信息页面: public DelegateCommand AProposCommand { get; private set; }
private void APropos()
{
NavigationService.NavigateAsync("AProposPage", );
}
MasterPage已更改。
然后我尝试了这个:
public DelegateCommand AProposCommand { get; private set; }
private void APropos()
{
NavigationService.NavigateAsync("MenuPrincipalPage/AProposPage");
}
MasterPage也发生了变化。
此代码有效:
public DelegateCommand AProposCommand { get; private set; }
private void APropos()
{
NavigationService.NavigateAsync("/MenuPrincipalPage/AProposPage");
}
但这里不存在问题吗?我认为完整的导航堆栈已被删除。
我做错了吗?
非常感谢您的建议, 于连