0

WPFMVVMプロジェクトで別のコンストラクターを使用したいと思います。最初のものはMDI形式で使用されます。しかし、2番目のコンストラクターの使用法は、2番目のコンストラクターにパラメーターを送信している別のフォームを超えています。どうすれば使えますか?

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

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

2つのコンストラクターがあります。しかし、xaml側にデータコンテキストがあります。エラーは

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>
4

1 に答える 1

2

XAMLからパラメーター化されたコンストラクターを使用することはできません。DataContextウィンドウを作成するときにコードでウィンドウを設定することで、この制限を回避できます。

しかし、を設定しようとしたようDataContextです。これがおそらく例外の原因です。MyViewModelMyModelView

余談ですが、「ModelView」と「ViewModel」の名前は何ですか?これらは紛らわしいほど似ているようです...そしてそれはMVVMの文字が表すものではありません。

于 2012-11-06T13:07:06.337 に答える