I have a WPF TabControl
which contains a number of TabItem
s with child UserControl
s, like this.
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>
Within one of the UserControl
s, lets say, InfoTab
, I have a Button
. When this Button
is clicked I would like to change the index of the TabControl
to the SummaryTab
and select a radio button on the SummaryTab
page.
My problem is that the InfoTab
user control does not have access to the MainUserControl
which contains the TabControl
shown above. I figured out a kludge which changes the SelectedIndex
of the TabControl
, but this is a very ugly solution and I'd prefer to do something more clean. Also I cannot currently change the RadioButton
on my SummaryTab.
My Current C# hack:
Private void btnSummaryDetails_Click(object sender, RoutedEventArgs e)
{
TabControl tabControl = UIHelper.FindChild<TabControl>(Application.Current.MainWindow, "tabsMain");
tabControl.SelectedIndex = 7;
}
Is it possible to use commands or dependency properties to select the SummaryTab
and my desired RadioButton
? I'm still new to the WPF world, and would love to learn more about this. Thanks in advance.
See my post here for the UIHelper
definition I use in the C# above.