使用Microsoft.Windows.Controls.Ribbon的多个视图

时间:2012-05-10 10:44:06

标签: wpf ribbon ribboncontrolslibrary

我有一个使用Microsoft.Windows.Controls.Ribbon的WPF功能区应用程序。我可以通过Grid.Row标记设置视图:

    </ribbon:Ribbon>
    <Grid Grid.Row="1">
      <!-- View's content here -->
    </Grid>
  </Grid>
</ribbon:RibbonWindow>

问:如何根据所选的功能区选项卡更改视图?

1 个答案:

答案 0 :(得分:0)

您有几个选择。

  1. 挂钩SelectionChanged事件并交换视图的内容。如果您正在使用Prism,您可以创建一个SelectorRegionAdapter来为您执行此操作。
  2. 您可以绑定到Ribbon.SelectedValue(设置SelectedValuePathLabel)并提供DataTrigger来处理每个标签的名称。
  3. 您可以在RibbonWindow属性中放置每个视图模型的实例(假设您的RibbonTab.Tag数据上下文具有您需要的每个视图模型),并调整您的视图基于SelectedItem.Tag

    <r:Ribbon x:Name="PART_Ribbon" ...>
        <r:RibbonTab Tag="{Binding HomeViewModel}" ... />
    </r:Ribbon>
    <Grid>
        <ContentControl Content="{Binding SelectedItem.Tag,
                                          ElementName=PART_Ribbon}" />
    </Grid>