В Призма 7 Я могу RegisterForNavigation
и RequestNavigate
из IModule
, как это:
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>();
}
}
, и я знаю, что могу RegisterForNavigation
из PrismApplication
как это:
public partial class App : PrismApplication
{
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<ViewA>();
}
}
но как я могу RequestNavigate
с PrismApplication
сразу при запуске?
Я пробовал это:
public class MainWindowViewModel : BindableBase
{
public MainWindowViewModel(IRegionManager regionManager)
{
regionManager.RequestNavigate("ContentRegion", "ViewA");
}
}
но this.regions.Count
равно 0 в RegionManager
из Prism
private IRegion GetRegionByName(string regionName)
{
return this.regions.FirstOrDefault(r => r.Name == regionName);
}
"ContentRegion"
определенно существует, потому что оно работает, если я пытаюсь из IModule
и я знаю, что RegisterTypes
из PrismApplication
выполняется раньшеMainWindowViewModel
конструктор.
Я не знаю, что мне не хватает, и я не могу найти ответ ни в каких примерах или учебных пособиях.
Спасибо за вашу помощь!