MainWindowViewModel 构造函数中的 RequestNavigate
RequestNavigate in MainWindowViewModel ctor
嗨,我希望当应用程序启动时,应用程序会自动导航到一个视图,所以我这样使用:
protected override Window CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<MainContent>();
containerRegistry.RegisterForNavigation<Subscene>();
}
并在 MainWindowViewModel
public MainWindowViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
_regionManager.RequestNavigate("ContentRegion", "Subscene", myparameter);
}
此代码无效,无错误且无导航
我的区域存在于另一个名为 MainContent
的用户控件中
这仅适用于 "normal" 视图模型,不适用于 shell 的视图模型,因为该视图模型创建得太早。您应该在 OnInitialized
.
中进行初始导航
internal class MyApp : PrismApplication
{
// ...
protected override void OnInitialized()
{
base.OnInitialized();
Container.Resolve<IRegionManager>().RequestNavigate("ContentRegion", "Subscene", myparameter);
}
// ...
}
不相关的旁注:如果您在构造函数中使用参数而不是字段,Resharper 会在以后的重构中不再需要该字段时告诉您。
嗨,我希望当应用程序启动时,应用程序会自动导航到一个视图,所以我这样使用:
protected override Window CreateShell()
{
return Container.Resolve<MainWindow>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<MainContent>();
containerRegistry.RegisterForNavigation<Subscene>();
}
并在 MainWindowViewModel
public MainWindowViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
_regionManager.RequestNavigate("ContentRegion", "Subscene", myparameter);
}
此代码无效,无错误且无导航
我的区域存在于另一个名为 MainContent
这仅适用于 "normal" 视图模型,不适用于 shell 的视图模型,因为该视图模型创建得太早。您应该在 OnInitialized
.
internal class MyApp : PrismApplication
{
// ...
protected override void OnInitialized()
{
base.OnInitialized();
Container.Resolve<IRegionManager>().RequestNavigate("ContentRegion", "Subscene", myparameter);
}
// ...
}
不相关的旁注:如果您在构造函数中使用参数而不是字段,Resharper 会在以后的重构中不再需要该字段时告诉您。