1

一種のメイン コンテンツ エリア (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 の間で何をバインドする必要がありますか?

4

1 に答える 1

0

私の知る限り、これを実行できるコントロールはありません。しかし、これを行うのは驚くほど簡単だと私には思えます (無知は至福です)。ContentControls のテンプレートをキャッシュするカスタムDataTemplateSelectorを作成するだけです。

于 2010-07-02T14:57:23.587 に答える