【发布时间】:2013-01-30 11:11:41
【问题描述】:
我正在为我的 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 控件在我的主窗口中添加一个功能区。我希望它有一些始终可见的固定选项卡和按钮。此外,我想根据子视图模型的类型添加和删除整个选项卡以及现有选项卡中的按钮。我希望在视图中以与我在上面完成内容控制的方式类似的方式完成此操作。
这可能吗?我已经尝试了很多东西,但到目前为止一无所获。我知道我可以通过创建一个巨大的“超级功能区”和绑定可见性属性来做到这一点,但这似乎很笨拙。我也可以有多个功能区,每个功能区都包含常用控件,但这会导致维护问题。
【问题讨论】: