使用Unity容器将ViewModel中的一个注入View

时间:2012-09-13 13:08:16

标签: c# mvvm unity-container

我有两个ViewModels

//both IViewModel1 and IViewModel2 inherit from IViewModel
public class ViewModel1 : IViewModel1
{}
//and
public class ViewModel2 : IViewModel2
{}

和视图:

public partial class View : UserControl
{
View(IViewModel)
{}
}

如何使用Unity容器将其中一个ViewModel注入View中? 编辑:我的问题是选择从构造函数中注入一个视图模型。

1 个答案:

答案 0 :(得分:0)

如果您使用Unity来解析您的视图并且IViewModel是构造函数签名的一部分,那么Unity将为您解决它(前提是您已经注册了它,例如在加载模块时):

public View(IViewModel1 vm)
{
    InitializeComponent();
    _myViewModel = vm;
}

请记住,Unity是贪婪的 - 它会尝试解析它最大的构造函数,因此如果你想选择一个特定的构造函数来使用它,那么你需要使用ParameterOverrides