前言
TabControl组件是WPF中一个比较强大的组件了,他可以在一个窗口中实现多个页面来回切换。但很多时候我们需要根据选中的TabItem显示另外一部分的页面,这时我们就需要动态获取当前TabItem了。
一、添加事件
我们需要在xaml文件中添加改变事件SelectionChanged = “SelectionChanged”,代码如下:
<TabControl x:Name="Control" SelectionChanged="SelectionChanged" HorizontalAlignment="Left" Height="760" Margin="5" VerticalAlignment="Top" Width="560" TabStripPlacement="Left">
二、添加事件响应
代码如下:
public void SelectionChanged(object sender,SelectionChangedEventArgs e)
{
Dispatcher.BeginInvoke(new Action(() =>
{
var data = this.Control.SelectedItem as TabItem;
var datas = data.Header; //主要是在后端获取到当前的TabItem的Heade
MessageBox.Show("content:" + this.Control.SelectedContent + "; index = " + this.Control.SelectedIndex + "; datas" + datas);
}));
}
此处需要异步操作,如果不使用异步操作,在第一次加载窗口时TabControl还未加载,这样会导致你命名的TabControl是个空值,无法对其进行操作。
总结
我们通过该方式就可以实现在切换TabControl的同时对页面其他部分进行修改,极大地提高了页面的灵活度。
参考:https://www.cnblogs.com/fishyues/p/10076489.html