一種のメイン コンテンツ エリア (MainContent) を含むビュー (MainView) があります。ビューは、対応するビューモデル (MainViewModel) によって支えられています。もちろん、メイン コンテンツはアプリケーションの現在の状態に基づいて変化し、ViewModel でプロパティ (CurrentPrimaryViewModel) として表されます。MainContent のコンテンツは、XAML で次のように CurrentPrimaryViewModel にバインドされます。
Content="{Binding Path=CurrentPrimaryViewModel}"
ViewModel->View マッピング DataTemplates の束を含む ResourceDictionary があります。したがって、CurrentPrimaryViewModel が XViewModel タイプの場合、XView に解決されます。
これはすべて機能します。
問題は、CurrentPrimaryViewModel が変更されるたびに新しいビューが作成されることです。私が望むのは、適切にマップされた View の DataContext を正しい ViewModel に変更し、その View を MainContent にすることです。基本的にCardStackが好きですか?Java のレイアウト、またはタブが表示されない TabControl。
この状況を処理するための適切な手法は何ですか? MainContent ラッパーの下にさまざまなビューを作成し、それらの可視性または Z オーダーを切り替える必要がありますか? これに適したパターンはありますか?これを実現するには、MainView と MainViewModel の間で何をバインドする必要がありますか?