У меня есть WPF TabControl
, который содержит число TabItem
с дочерними UserControl
с, вот так.
XAML:
<TabControl x:Name="tabsMain" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Grid.Row="0" Grid.RowSpan="3" Background="lightgray">
<TabItem Width="100" Header="Profile" FontSize="16">
<InfoControl:InfoTab x:Name="myInfo" />
</TabItem>
<TabItem Width="120" x:Name="Summary" Header="Summary" FontSize="16">
<SummaryControl:SummaryTab/>
</TabItem>
</TabControl>
В течение одного из UserControl
с, скажем, InfoTab
, у меня есть Button
. При нажатии на Button
я бы хотел изменить индекс TabControl
на SummaryTab
и выбрать переключатель на странице SummaryTab
.
Моя проблема в том, что пользовательский элемент управления InfoTab
не имеет доступа к MainUserControl
, который содержит TabControl
, показанный выше. Я понял, что kludge изменяет SelectedIndex
из TabControl
, но это очень уродливое решение, и я предпочел бы сделать что-то более чистое. Также я не могу в настоящее время изменить RadioButton
на моем SummaryTab.
Мой текущий C # хак:
Private void btnSummaryDetails_Click(object sender, RoutedEventArgs e)
{
TabControl tabControl = UIHelper.FindChild<TabControl>(Application.Current.MainWindow, "tabsMain");
tabControl.SelectedIndex = 7;
}
Можно ли использовать команды или свойства зависимостей для выбора SummaryTab
и моего желаемого RadioButton
? Я все еще новичок в мире WPF и хотел бы узнать больше об этом. Заранее спасибо.
См. мой пост здесь для определения UIHelper
, которое я использую в C # выше.