我正在使用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