我正在使用Prism和Unity来使用MVVM模式重写WPF应用程序。大多数意见都通过DataContext属性连接到虚拟机,就像这样:如何在视图模型在构造函数中包含参数时将ViewModel连接到视图?
<UserControl.DataContext>
<VM:RibbonViewModel/>
</UserControl.DataContext>
的问题是,当在视图模型的构造函数的参数这种方法是行不通的。
public RibbonViewModel(IEventAggregator eventAggregator)
{
this.eventAggregator = eventAggregator;
}
我得到的错误:
类型“RibbonViewModel”不可用作对象元素,因为它是不公开或不定义一个公共的无参数的构造函数或类型转换器。
当有参数时,如何将虚拟机连接到视图?
谢谢,我只是试过,并没有奏效。问题是,当你实例化一个VM的新实例时,你必须在构造函数中包含一个参数。 – Scifiballer24 2011-01-21 05:24:42
此代码是正确的。您应该使用Unity容器实例化视图和视图模型,并在代码隐藏中剔除DataContext。 – 2011-01-21 07:52:44