zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    java_监控工具jvisualvm
    bzoj3667: Rabin-Miller算法
    bzoj3677: [Apio2014]连珠线
    4070: [Apio2015]雅加达的摩天楼
    4069: [Apio2015]巴厘岛的雕塑
    4071: [Apio2015]巴邻旁之桥
    bzoj2653: middle
    1500: [NOI2005]维修数列
    bzoj4262: Sum
    bzoj4540: [Hnoi2016]序列
  • 原文地址:https://www.cnblogs.com/sunqiliang/p/5404888.html
Copyright © 2011-2022 走看看