未使用 WPF 应用调用 Prism INavigationAware 方法

Prism INavigationAware methods not called with WPF app

我们在 WPF 应用程序中使用 Prism 7.2.0.1441-ci。我们有一个问题是 INavigationAware 导航到视图时未调用方法。我们使用以下代码进行导航。 登录视图已注册。 LoginViewModel 已实现 INavigationAware

    _regionManager.RegisterViewWithRegion(RegionNames.TabRegion, typeof(Login));
    _regionManager.RequestNavigate(RegionNames.TabRegion, ViewNames.Login, parameters);

MainWindow.xaml

       <DockPanel>
            <!-- <Frame x:Name="_mainFrame" NavigationUIVisibility="Hidden" /> -->
          <ContentControl  prism:RegionManager.RegionName="{x:Static core:RegionNames.TabRegion}"  />
          </DockPanel>

此机制在应用程序的另一部分确实有效,此特定位在启动代码中,并从 MainWindowViewModel 构造函数中调用。

有什么想法吗?

谢谢

This mechanism does work in another part of the app, this particular bit is in the startup code and is being called from the MainWindowViewModel constructor.

您无法从 shell 视图模型的构造函数导航,因为区域还不存在。

相反,从 OnInitialized 进行第一次导航(或让用户单击按钮)。