你的位置:首页 > ASP.net教程

[ASP.net教程]WPF TabControl控件


TabControl控件的TabItem的Content元素,例如:DataGrid控件,在对事件的处理时,需要对事件的源引起关注,当需要处理DataGrid的事件时,事件会传递到TabControl中,解决这种问题的方法如下:

方法一:判断触发此事件的源是谁,根据事件的源再做相应处理

private void tabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) {   if (e.Source is TabControl)   {    //do something  } }

方法二:注册DataGrid等相应控件的相应事件,使其不再向上传递

private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e){  e.Handled = true;}

引发问题扩展:  无法动态设置当前项。。

例如: 如果在需要使用TabItem的内容元素DataGrid的双击事件时,

void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)    {  //do something    }

如果没有加上e.Handled = true; 这句, 而此时恰恰我们需要动态改变TabControl的选择项时,我们会面对这样一个问题,无论我们怎么改变下面这个值,它的值总会变为我们处理双击事件时的Item页面中。

this.tabControl.SelectedItem = newTabItem;