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