TabControl 与 DataGrid 的 SelectionChanged冲突问题

DataGrid作为TabControl控件的TabItem的content元素。
当操作DataGrid的不同cell时,会引发了TabControl的SelectionChanged事件的问题。
正确的使用方式有2中方法:
方法一:

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (e.Source is TabControl) 
    { 
      //do work when tab is changed 
    } 
}


此方法可判断引发TabControl的selectionChanged的源是谁,只有TabControl自己才会做一些处理,其他控件不做处理。
方法二:

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


此方法可注册DataGrid的SelectionChanged事件来屏蔽tabControl Changed 事件。

猜你喜欢

转载自blog.csdn.net/weixin_40626630/article/details/85413670
今日推荐