0

我有二级 ViewModel

//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 中?
编辑:我的问题是选择从构造函数注入其中一个视图模型。

4

1 回答 1

0

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

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

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

于 2012-09-13T13:18:54.490 回答