WPF应用未调用Prism INavigationAware方法

问题描述

我们在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构造函数调用

有什么想法吗?

谢谢

解决方法

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

您不能从shell视图模型的构造函数中导航,因为区域尚不存在。

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