0

クラス2のViewModelがあります

//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の1つをビューに挿入するにはどうすればよいですか?
編集:私の問題は、コンストラクターからビューモデルの1つを挿入することを選択できることです。

4

1 に答える 1

0

Unityを使用してビューを解決し、IViewModelがコンストラクターの署名の一部である場合、Unityがそれを解決します(モジュールのロードなどで既に登録されている場合)。

public View(IViewModel1 vm)
{
    InitializeComponent();
    _myViewModel = vm;
}

Unityは貪欲であることに注意してください。Unityは可能な限り最大のコンストラクターを解決しようとするため、使用する特定のコンストラクターを選択する場合は、 ParameterOverridesを使用する必要があります。

于 2012-09-13T13:18:54.490 に答える