我有两个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中? 编辑:我的问题是选择从构造函数中注入一个视图模型。
答案 0 :(得分:0)
如果您使用Unity来解析您的视图并且IViewModel是构造函数签名的一部分,那么Unity将为您解决它(前提是您已经注册了它,例如在加载模块时):
public View(IViewModel1 vm)
{
InitializeComponent();
_myViewModel = vm;
}
请记住,Unity是贪婪的 - 它会尝试解析它最大的构造函数,因此如果你想选择一个特定的构造函数来使用它,那么你需要使用ParameterOverrides。