WPF / MVVM:在相同的DockPanel中打开不同的用户控件(WPF/MVVM: Openi

2019-07-05 05:25发布

我创建使用的应用程序DockPanel对我的布局。 在“左” DockPanel我已经建立了几个链接(标签),我想用来打开不同的UserControls点击一个链接时。 我想在UserControls中的“权利” DockPanel中要始终打开点击相应的链接时。

在WPF什么机制(使用MVVM)将我用它来做到这一点? 有没有我可以查看任何的例子吗?

Answer 1:

一般模式,遵循的是这样的:

  1. a添加ContentPresenter到用户界面的地方,这将举办开关能的内容(右侧面板DockPanel你的情况)。
  2. 每个可切换视图的可视化表示将通过用户控制来表示。
  3. 每个开关能够视图的数据将由一个ViewModel来表示。
  4. 绑定Content的财产ContentPresenter在您的视图模型中的属性,即代表视图如视图模型类型的BoundContent
  5. 当用户点击该链接,您的视图模型应该通过更改绑定属性,提高该反应PropertyChanged事件通知您的观点。
  6. 对于可以切换你将需要一个每个“视图” DataTemplate每个用户控制每个视图模型映射。

雷切尔LIMS博客包含了几个例子这表明以上:

  • 在WPF / MVVM交换意见
  • 导航与MVVM


文章来源: WPF/MVVM: Opening different UserControls in same DockPanel