【问题标题】:prism 6 nested regions navigationprism 6 嵌套区域导航
【发布时间】:2016-02-22 17:01:21
【问题描述】:

我在一个区域中有一个区域。主要区域(包含所有其他区域)名为 ContentRegion,而我用来显示部分信息的另一个名为 SettingsRegion

在我的引导程序下,我定义了以下内容:

        Prism.Regions.IRegionManager contentRegion = Container.TryResolve<Prism.Regions.IRegionManager>();

        #region Register Multiple Regions
        //contentRegion.RegisterViewWithRegion("ContentRegion", typeof(MainWindow));
        contentRegion.RegisterViewWithRegion("SettingsRegion", typeof(SettingsView_MainPage));


        #endregion

我可以从我的 ContentRegion 导航到 SettingsRegion,而不会出现以下问题:

_regionManager.RequestNavigate("ContentRegion", Experiences.Navigation.SettingsView_MainPage.ToString());

_regionManager.RequestNavigate("SettingsRegion", Experiences.NavigationSettings.SettingsView_ShiftSettings.ToString());

一切都很好,我可以同时看到两个视图(内容)。但是,当我尝试导航回主页时,如下所示

_regionManager.RequestNavigate("ContentRegion", Experiences.Navigation.MainPage.ToString());

它给了我以下错误: {"Region with the given name is already registered: SettingsRegion"}

我已经阅读了多篇关于嵌套区域的文章,但是我无法实现。我可能还应该提到我也在使用 Unity。

我还附上了图片,以便我的解释不那么混乱。

主视图/主窗口

我想在嵌套区域下显示一些细节的第二个视图

【问题讨论】:

    标签: c# wpf navigation prism


    【解决方案1】:

    所以最后我不得不做以下调整:

    从 Bootstrapper 中完全删除以下行(我不明白为什么我不需要注册它)。

    contentRegion.RegisterViewWithRegion("SettingsRegion", typeof(SettingsView_MainPage));
    

    后来不得不在我的 SecondPageViewModel 下做些小改动;本来我是直接导航到构造函数下的子页面,但是一旦我实现INavigationAware并将导航移动到OnNavigatedTo然后它突然开始工作了。

    【讨论】:

    • 你能举个例子吗?
    • RegisterViewWithRegion() 用于视图发现,而您使用的是导航。两种不同的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多