我正在为我的 WPF 应用程序使用 MVVM 模式。如果控制我的应用程序主窗口布局的“主”视图模型,我有一个 ChildViewModel 属性。这包含一个可以根据用户正在做的事情切换的视图模型。当他们选择菜单项时,子视图模型会切换,屏幕的主要区域(它是 Outlook 样式)也会相应地切换。
我用这样的 ContentControl 和 DataTemplate 来做到这一点:(我在这里只显示一个可嵌入的视图以保持简短)。
<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 控件在我的主窗口中添加一个功能区。我希望它有一些始终可见的固定选项卡和按钮。此外,我想根据子视图模型的类型添加和删除整个选项卡以及现有选项卡中的按钮。我希望以与上面完成内容控制的方式类似的方式在视图中完成此操作。
这可能吗?我已经尝试了很多东西,但到目前为止一无所获。我知道我可以通过创建一个巨大的“超级功能区”和绑定可见性属性来做到这一点,但这似乎很笨拙。我也可以有多个功能区,每个功能区都包含公共控件,但这会导致维护问题。