Несколько представлений с использованием Microsoft.Windows.Controls.Ribbon
У меня есть приложение ленты WPF, использующее Microsoft.Windows.Controls.Ribbon
, Я могу установить вид через Grid.Row
тег:
</ribbon:Ribbon>
<Grid Grid.Row="1">
<!-- View's content here -->
</Grid>
</Grid>
</ribbon:RibbonWindow>
В: Как я могу изменить вид в зависимости от выбранной вкладки ленты?
1 ответ
Решение
У вас есть несколько вариантов.
- Крюк
SelectionChanged
событие и обменять контент вашего представления. Если вы используете Prism, вы можете создатьSelectorRegionAdapter
сделать это для вас. - Вы можете связать с
Ribbon.SelectedValue
(настройкаSelectedValuePath
сказатьLabel
) и предоставитьDataTrigger
который обрабатывает каждое из имен вашей вкладки. Вы можете поместить экземпляр каждой модели представления (при условии, что ваш
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>