所以,我正在使用 MVVM Light。我有一个 UWP 应用程序,我在其中制作了一个带有按钮的汉堡菜单,这些按钮将页面加载到 MainPage 上的 Frame 中。汉堡菜单位于 MainPage 中。
到目前为止,我只使用了 SourcePageType 并将其绑定(bind)到 MainPageViewModel 中的 Type 属性。通过将 MainPageViewModel 实例分配给静态属性,我可以轻松更新 SourcePageType 的绑定(bind)源。这样我就可以做到这一点,例如:
MainPageViewModel.Current.CurrentFrame = typeof(NewItemPage);
但是,这意味着我只是通过更新 MainFrameViewModel 来在帧之间导航,这可能不是最佳的(例如在 GoBack 上输了)。
我这样做的原因是因为每当我使用 NavigateTo 时,我都会丢失汉堡菜单并打开一个全新的页面,这不是我想要的。我想让汉堡菜单随时可用。
同样重要的是,我也可以从其他页面中导航,而不仅仅是 MainPage。例如,其中一个页面具有从数据库加载的图像 GridView 。每当我单击其中一张图片时,我都会被带到例如详细信息页面或编辑页面。
谁能告诉我如何使用某种 NavigationService 来做到这一点?我不想仅仅依靠使用代码隐藏,因为我想学习 mvvm。
最佳答案
以下结构将帮助您
Frame
为 Hamburger
放置 XAML和另一个 Frame
(将包含所有可以导航的内容并充当主要占位符)NavigationService
有引用内容框架 并在其中加载 View 并在其中导航。 我也在我的一个应用程序中做了类似的事情,并且工作得很好。
注意-我认为这应该对您有所帮助,如果您需要进一步的帮助,请随时询问。
关于c# - 帧之间的 UWP 导航而不会丢失汉堡菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47284360/