У меня есть ComboBox в меню ленты приложения, где выбранный элемент привязывается к теме пользовательского интерфейса приложения следующим образом:
Связывание темы в MainWindow.xaml
Theme="{Binding SelectedItem.Tag, ElementName=_themeCombo}"
И ComboBox
<ComboBox x:Name="_themeCombo" SelectedIndex="0" Width="200">
<ComboBoxItem Content="Generic" />
<ComboBoxItem Content="Aero">
<ComboBoxItem.Tag>
<xcad:AeroTheme />
</ComboBoxItem.Tag>
</ComboBoxItem>
</ComboBox>
Выбор темы работал хорошо, однако, поскольку MainWindow.xaml становится очень длинным, я переместил свою ленту меню (и, следовательно, поле со списком) в отдельный файл UserControl с именем "Ribbon.xaml" и сослался на него как следующим образом:
<local:Ribbon x:Name="RibbonWin" Grid.Row="0" />
Это, однако, нарушило обязательную ссылку для выбора моей темы. Ribbon.xaml находится в том же пространстве имен, что и mainwindow.xaml.
Как указать относительный путь к ленте ComboBox с именем «_themeCombo»?
Я попытался поместить полный адрес ComboBox в (имя класса inc для ленты) следующим образом, но это не сработало:
Theme="{Binding SelectedItem.Tag, ElementName=DrainageDesign.View.Ribbon._themeCombo}"