2017-08-09 39 views
0

我在WPF中颇为新颖,我正在VB.net中开发WPF应用程序。我的主窗口中有几个控件。当我遵循MVVM模式时,我的主窗口中有一个MainViewModel。在这个ViewModel中,我安装了我的用户控件视图模型。WPF:管理窗口中的多个用户控件

Public Class MainViewModel 

    Public Property myUserControlViewModel As UserControlViewModel 

    Public Sub New() 
     Dim myModel As Model 

     myModel = New Model(parameter) 
     myUserControlViewModel = New myUserControlViewModel (myModel) 

    End Sub 
End Class 

问题1:是这种模式下MVVM正确?

问题2:如何强制我的用户控件使用myUserControlViewModel?我的具体意思是这个已经在我的MainViewModel中创建的实例。我应该如何将myUserControlViewModel引入我的用户控制?

+0

剔除了C#标记 - 它与C#无关# –

回答

2

Is this pattern following MVVM Correctly?

是的。

How can I force my user control to use myUserControlViewModel ?

在结合所述myUserControlViewModel属性和与包括用于UserControlViewModel类型DataTemplate视图创建ContentControl

这将显示UserControlViewModel作为UserControl1

+0

非常感谢您的回复。我实际上无法使用ContentControl运行它。我得到这个错误:'WPF项目中不支持UserControlViewModel'。 但是,您的回复让我朝正确的方向发展。我的错误是我试图在用户控件中设置用户控件的数据上下文。现在我在我的'MainViewModel'中将数据上下文定义为公共属性,并将其绑定到我的用户控件。 – Yvonnila

相关问题