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 会在以后的重构中不再需要该字段时告诉您。