0

したがって、基本的には、別のビューモデルから直接ビューモデルをインスタンス化する必要があります。MVVMLightを使用しています。MVVMLightViewModelLocatorを使用してインスタンス化できると言われています。ソースのビューモデルAでこのコード行を試して、宛先のビューモデルBをインスタンス化しました。

SimpleIoc.Default.GetInstance<BViewModel>();

うまくいきませんでした、何かアイデアはありますか?

4

1 に答える 1

0

私が正しく理解している場合は、次のようにビュー B のコンストラクターでコードを使用する必要があります。

this.DataContext = SimpleIoc.Default.GetInstance<BViewModel>();

このようにして、ビューは BViewModel のインスタンスと結合されます。例では、インスタンス化するだけです。

ViewModel と View の構築に関する詳細情報は、次の場所にあります。

http://msdn.microsoft.com/en-us/library/gg405484(v=pandp.40).aspx#sec17

しかし、私は WP7 プログラミングの経験があり、ビューのコンストラクターから IOC コンテナーを使用することをお勧めします。これは、渡すパラメーターが WP7 ページの標準のナビゲーション メソッドを使用してビューにプッシュされるためです。

于 2012-05-30T15:22:48.473 に答える