WPF MVVM中的页面特定导航

时间:2017-08-04 18:02:46

标签: c# wpf mvvm navigation

如何使用MVVM在WPF中实现页面特定的导航?例如,如果我有一个"设置"页面和"帐户"页面,每个页面都有自己独特的页面特定导航,但每个导航项目都位于应用程序的同一个容器中。导航容器停靠在应用程序窗口的左侧,并且永远不会更改,但导航项会根据用户所在的页面而改变。我有两种方法:

  • 为每个页面的每个不同导航创建导航视图和视图模型
  • 创建一个导航视图和视图模型,并根据用户所在的页面动态添加必要的按钮

在我看来,第二个选项似乎更好,因为它更动态,只使用一个视图/视图模型,但我不知道如何实现它。我可以轻松地为一个导航容器编写视图和查看模型,但使其动态化有点棘手。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您想要使用DataTemplate和ContentControl,请参阅Jeremy Alles Blog以获得一个好例子

所以为了回答你的问题,我会为每个人创建一个视图和视图模型。

答案 1 :(得分:0)

使用NavigationService并创建相应的视图和视图模型。