したがって、基本的には、別のビューモデルから直接ビューモデルをインスタンス化する必要があります。MVVMLightを使用しています。MVVMLightViewModelLocatorを使用してインスタンス化できると言われています。ソースのビューモデルAでこのコード行を試して、宛先のビューモデルBをインスタンス化しました。
SimpleIoc.Default.GetInstance<BViewModel>();
うまくいきませんでした、何かアイデアはありますか?
したがって、基本的には、別のビューモデルから直接ビューモデルをインスタンス化する必要があります。MVVMLightを使用しています。MVVMLightViewModelLocatorを使用してインスタンス化できると言われています。ソースのビューモデルAでこのコード行を試して、宛先のビューモデルBをインスタンス化しました。
SimpleIoc.Default.GetInstance<BViewModel>();
うまくいきませんでした、何かアイデアはありますか?
私が正しく理解している場合は、次のようにビュー 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 ページの標準のナビゲーション メソッドを使用してビューにプッシュされるためです。