WPF / MVVM:在同一个DockPanel中打开不同的UserControl

时间:2012-12-13 16:18:01

标签: wpf mvvm dockpanel

我正在使用DockPanel为我的布局创建一个应用程序。在“左”DockPanel中,我设置了一些链接(标签),我想用它来点击链接时打开不同的UserControls。我希望在单击适当的链接时,UserControls始终在'右'DockPanel中打开。

我将使用WPF(使用MVVM)中的哪种机制来实现此目的?我有什么例子可以查看吗?

1 个答案:

答案 0 :(得分:4)

要遵循的一般模式是:

  1. ContentPresenter添加到您的用户界面中将托管可切换内容的位置(在您的情况下为DockPanel的右侧面板)。
  2. 每个可切换视图的可视化表示将由用户控件表示。
  3. 每个可切换视图的数据将由viewModel表示。
  4. Content的{​​{1}}属性绑定到视图模型中属于viewModel类型的属性,该属性表示视图E.G. ContentPresenter
  5. 单击链接后,您的viewModel应通过更改绑定属性并引发BoundContent事件来通知您的视图来对此作出反应。
  6. 对于每个可以切换的“视图”,您需要PropertyChanged将每个用户控件映射到每个viewModel。
  7. Rachel Lims博客包含几个展示上述内容的示例: