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

Best Way to Replace UserControl Loaded in TabControl TabItem

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

各个选项卡都提供了视图(用户控件),它们都按预期工作。代码如下。我在这里使用 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。

任何人都可以建议我实现这一目标的方法吗?

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

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


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