2012-11-06 53 views
0

我想在WPF MVVM項目中使用不同的構造函數。第一個用於MDI形式。但是第二個構造函數的用法是在另一個表單上發送一個參數給第二個。我如何使用它?如何在wpf中使用MVVM中的2構造函數?

public MyModelView() 
{ 
    InitializeComponent(); 
    tlb.SelectVisibility = System.Windows.Visibility.Visible; 
} 

public MyModelView(MyViewModel test) 
{ 
    InitializeComponent(); 
    DataContext = test; 
    tlb.SelectVisibility = test.Visibility; 
} 

我有兩個構造函數。但是我在xaml方面有一個datacontext。該錯誤是

Xaml parse exception: 'The invocation of the constructor on type 'XYZ.AP.UI.ViewModel.MyViewModel' that matches the specified binding constraints threw an exception.' Line number '15' and line position '6'.

<Windows:TransactionWindow.DataContext> 
    <ViewModel:MyViewModel /> 
</Windows:TransactionWindow.DataContext> 
+0

PLZ提供視圖模型的構造函數 – KroaX

回答

2

不能從XAML使用參數的構造函數。在創建窗口時,您可以通過在代碼中設置窗口的DataContext來解決此限制。

但它看起來像你試圖設置DataContextMyViewModel而不是MyModelView。這可能是你的例外的來源。

另外,'ModelView'和'ViewModel'的名稱是什麼?這些似乎令人困惑地類似......並不是MVVM代表的字母。