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