替换TabControl TabItem中加载的UserControl的最佳方法

时间:2015-02-27 09:40:05

标签: wpf xaml user-controls tabcontrol tabitem

我目前在MainWindow.xaml中加载了TabControl,它有三个选项卡。我们将它们命名为Tab1,Tab2和Tab3。

各个选项卡提供了视图(usercontrols),它们都按预期工作。代码如下。我在这里使用MahApps Metro TabControl。

<Controls:MetroAnimatedSingleRowTabControl Grid.Row="0" Grid.ColumnSpan="4" x:Name="MainTabControl">
            <TabItem Header="Tab1">
                <view:Tab1View DataContext="{Binding}"  />
            </TabItem>
            <TabItem Header="Tab2">
                <view:Tab2View DataContext="{Binding}" />
            </TabItem>
            <TabItem Header="Tab3">                    
                <view:Tab3View DataContext="{Binding}" />
            </TabItem>                
        </Controls:MetroAnimatedSingleRowTabControl>

我现在要做的是当我点击Tab3View.xaml上的按钮时,将Tab3(Tab3View.xaml)的视图切换到另一个视图(让我们称之为subTab3View.xaml)。这基本上将Tab3内容从Tab3View.xaml切换到subTab3View.xaml。

有人可以建议我实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

您可以在选项卡中设置内容控件,然后在按钮单击或任何您想要的事件上更改内容。

<TabItem Header="Tab3">                    
    <ContentControl x:Name="contentControl"/>
</TabItem>                


private void ButtonClick(object sender, RoutedEventArgs e)
{
    this.contentControl.Content = new Tab3View();
}