[UWP][MVVMLight][汉堡包菜单]导航服务限制?

[UWP][MVVMLight][汉堡包菜单]导航服务限制?,uwp,navigation,mvvm-light,Uwp,Navigation,Mvvm Light,我在我的UWP应用程序中使用MVVMLight(V5.4.1),并希望实现经典的汉堡包菜单,其中我的分类内容页面显示在主页的一个框架中。然而,在实践中,我似乎无法告诉MVVMLight提供的NavigationService它应该使用主页中的框架进行导航。根据我在网上的研究,似乎我必须编写自己的导航服务(定义见此链接:)。真的是这样吗?我真的必须自己写导航服务吗,还是我错过了一些明显的东西 汉堡包菜单肯定是最流行的应用程序样式之一,MVVMLight真的不能完全支持它吗 我真的必须自己写导航服务

我在我的UWP应用程序中使用MVVMLight(V5.4.1),并希望实现经典的汉堡包菜单,其中我的分类内容页面显示在主页的一个框架中。然而,在实践中,我似乎无法告诉MVVMLight提供的NavigationService它应该使用主页中的框架进行导航。根据我在网上的研究,似乎我必须编写自己的导航服务(定义见此链接:)。真的是这样吗?我真的必须自己写导航服务吗,还是我错过了一些明显的东西

汉堡包菜单肯定是最流行的应用程序样式之一,MVVMLight真的不能完全支持它吗

我真的必须自己写导航服务吗,还是我错过了一些明显的东西

MVVMLight
已提供。你没有必要复制它

为了在MVVM指示灯中使用导航,您必须在ViewModelLocator.cs中注册和配置INavigationService,为此,您必须使用PageKey注册每个页面

public const string FirstPageKey = "FirstPage";  
public const string SecondPageKey = "SecondPage";

var nav = new NavigationService();
nav.Configure(FirstPageKey, typeof(FirstPage));
nav.Configure(SecondPageKey, typeof(SecondPage));

嗨@NicoZhu,我读了博客链接,但只显示了一个页面导航到另一个页面(和返回)。我特别希望在我的主页上有一个框架作为我所有其他内容页的宿主。为了实现这一点,我认为导航服务需要了解主页中的框架(如我问题中的链接所示)。似乎没有办法将该框架传递给导航服务。我知道你的方法。实际上,该框架并不停留在主机
MainPage
中。通常,我们需要在汉堡菜单体系结构中的
MainPage
之前创建一个shell作为主机。您还可以使用shell的
NavigationService
导航另一个也包含
MainPage
的页面。您好,非常感谢您的回复。从你所说的我所收集到的信息来看,我的应用程序应该有一个“外壳”页面,同时承载主页和后续内容页面。如果是这种情况,那么这不是我所读到的汉堡包菜单实现(参见我的链接)。我想我可能更容易创建自己的导航服务,如我的链接所示。当然,你可以创建自己的导航服务。