WPF アプリケーションに MVVM パターンを使用しています。アプリケーションのメイン ウィンドウのレイアウトを制御する「ホーム」ビュー モデルの場合、ChildViewModel プロパティがあります。これは、ユーザーが何をしているかに応じて切り替えることができるビューモデルを保持します。メニュー項目を選択すると、子ビュー モデルが切り替わり、それに応じて画面のメイン領域 (Outlook スタイル) が切り替わります。
私は次のように ContentControl と DataTemplate を使用してこれを行います (短くするために、ここでは埋め込み可能なビューの 1 つだけを示しています)。
<ContentControl Grid.Row="1" Grid.Column="1" Margin="3"
Content="{Binding ChildViewModel}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type vm:VersionsViewModel}">
<Embeddable:VersionsView />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
また、Telerik RadRibbonView コントロールを使用して、メイン ウィンドウにリボンを追加したいと考えています。これには、常に表示されるいくつかの固定タブとボタンが必要です。さらに、子ビューモデルのタイプに応じて、タブ全体、および既存のタブ内のボタンを追加および削除したいと考えています。上記のコンテンツ コントロールと同様の方法で、ビューでこれを実行したいと思います。
これは可能ですか?私は多くのことを試しましたが、これまでのところどこにも行きませんでした。巨大な「スーパー リボン」を作成し、可視性プロパティをバインドすることで実現できることはわかっていますが、これは扱いにくいようです。それぞれに共通のコントロールを含む複数のリボンを使用することもできますが、これはメンテナンスの問題を引き起こします。