替换 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();
}
我目前在 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();
}