WPF中TabControl中嵌套DataGrid会造成TabControl的SelectionChanged多次触发的解决方案

产生原因:

由于WPF中默认事件是会向上传递的,所以当触发DataGrid(其他控件如ComboBox的原理相同)的SelectionChanged,其会继续向上传递到TabControl中.

解决方案

  • 在DataGrid的SelectionChanged事件处理方法中通过判断触发源来屏蔽掉其他控件的触发事件
if (e.Source.GetType() == typeof (DataGrid))
{
	//do somethings
}
  • 直接在DataGrid的SelectionChanged事件处理方法中添加
e.Handled = true;

来阻止事件继续传递.

posted @ 2021-04-29 10:44  清楚xc  阅读(901)  评论(0)    收藏  举报