【问题标题】:WPF/MVVM: Opening different UserControls in same DockPanelWPF/MVVM:在同一个 DockPanel 中打开不同的用户控件
【发布时间】:2012-12-01 14:05:36
【问题描述】:

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

我将使用 WPF 中的什么机制(使用 MVVM)来完成此任务?有没有可以查看的示例?

【问题讨论】:

    标签: wpf mvvm dockpanel


    【解决方案1】:

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

    1. ContentPresenter 添加到用户界面中将承载可切换内容的位置(在您的情况下为DockPanel 的右侧面板)。
    2. 每个可切换视图的可视化表示将由用户控件表示。
    3. 每个可切换视图的数据将由 viewModel 表示。
    4. ContentPresenterContent 属性绑定到视图模型中的一个属性,该属性是代表视图的viewModel 类型。 BoundContent
    5. 点击链接时,您的 viewModel 应该通过更改绑定属性并引发 PropertyChanged 事件来通知您的视图来对此做出反应。
    6. 对于每个可以切换的“视图”,您都需要一个DataTemplate,它将每个用户控件映射到每个视图模型。

    Rachel Lims 博客包含几个演示上述内容的示例:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      相关资源
      最近更新 更多