c# - 帧之间的 UWP 导航而不会丢失汉堡菜单

标签 c# xaml mvvm uwp navigation

所以,我正在使用 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。

最佳答案

以下结构将帮助您

  • 在您的主要 FrameHamburger 放置 XAML和另一个 Frame (将包含所有可以导航的内容并充当主要占位符)
  • 在您的 NavigationService有引用内容框架 并在其中加载 View 并在其中导航。

  • 我也在我的一个应用程序中做了类似的事情,并且工作得很好。

    注意-我认为这应该对您有所帮助,如果您需要进一步的帮助,请随时询问。

    关于c# - 帧之间的 UWP 导航而不会丢失汉堡菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47284360/

    相关文章:

    c# - WPF 使用 MVVM 禁用列表框项目

    C# Foreach 语句不包含 GetEnumerator 的公共(public)定义

    c# - 如何使用 FK NHibernate 映射复合 PK

    wpf - XAML有多独特?

    c# - 显示来自 byte[ ] 的图像

    c# - View 是否应该间接绑定(bind)到 MVVM 模型中的属性?

    c# - 尝试从 linq 正在创建的(匿名类)对象获取属性/字段

    c# - 选择一些特定的 xml 元素到匿名对象列表

    wpf - 在代码中添加项目时将 ItemTemplate 用于 TreeView

    c# - Mvvm 与 A​​valonEdit 绑定(bind) SelectionStart, SelectionLength