gpt4 book ai didi

c# - Prism RequestNavigate 在启动时立即从 PrismApplication 导航

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:37 24 4
gpt4 key购买 nike

Prism 7中,我可以像这样从IModuleRegisterForNavigationRequestNavigate:

public class ModuleAModule : IModule
{
public void OnInitialized(IContainerProvider containerProvider)
{
var regionManager = containerProvider.Resolve<IRegionManager>();
regionManager.RequestNavigate("ContentRegion", "PersonList");
}

public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<PersonList>();
}
}

我知道我可以像这样从 PrismApplication RegisterForNavigation:

public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<ViewA>();
}
}

但是我如何才能在启动时立即从 PrismApplication RequestNavigate

我试过这个:

public class MainWindowViewModel : BindableBase
{
public MainWindowViewModel(IRegionManager regionManager)
{
regionManager.RequestNavigate("ContentRegion", "ViewA");
}
}

this.regions.CountPrismRegionManager 中为 0

private IRegion GetRegionByName(string regionName)
{
return this.regions.FirstOrDefault(r => r.Name == regionName);
}

"ContentRegion" 肯定存在,因为如果我从 IModule 尝试并且我知道 RegisterTypes 来自 PrismApplicationMainWindowViewModel 构造函数之前执行。

我不知道我错过了什么,我在任何示例或教程中都找不到答案。

感谢您的帮助!

最佳答案

最好的办法是在您的应用程序中覆盖 OnInitialized 并在那里进行导航。您可以通过 Container 属性访问容器以获取区域管理器。

如果您使用 Bootstrap ,您可以覆盖 InitializeModules 并导航到那里。

关于c# - Prism RequestNavigate 在启动时立即从 PrismApplication 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53005769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com