首页 > 解决方案 > 使用 MVVM 模板 WPF 应用程序导航

问题描述

我正在计划 wpfMVVM应用程序。我读了很多关于MVVM模式的文章。但我找不到实现导航的最佳实践。

我的场景应用程序从登录屏幕开始,登录后我想要带有导航菜单的页面。我应该如何处理?

我阅读了有关使用Frame和容器的UserControl信息。viewModel但我不清楚我应该使用什么。

标签: c#.netwpfmvvm

解决方案


那么有100000个选项如何实现导航

在您的资源中创建数据模板

<DataTemplate DataType="{x:Type local:YOUR_PAGE_VIEWMODEL1}">
   <local:YOUR_PAGE1/>
</DataTemplate>

<DataTemplate DataType="{x:Type local:YOUR_PAGE_VIEWMODEL2}">
   <local:YOUR_PAGE2/>
</DataTemplate>

注意:在我们的例子中,YOUR_PAGE_VIEWMODEL1 和 YOUR_PAGE_VIEWMODEL2 具有相同的基类(我们称之为BasePageViewModel

然后在您的 MainViewModel 中,您可以添加类似这样的内容

class MainViewModel : INotifyPropertyChanged
{
  //....
  public BasePageViewModel CurrentPage { get; set; } //don't forget to notify
  //....
}

最后,您可以将 CurrentPage 绑定到您的框架

<Frame Content="{Binding CurrentPage}"/>

推荐阅读