首页 > Windows开发 > 详细

WPF之ComboBox的VisualTreeHelper

时间:2019-04-15 11:08:17      阅读:146      评论:0      收藏:0      [点我收藏+]
原文:WPF之ComboBox的VisualTreeHelper

     用WPF的ComboBox控件的时候,需要用到TextChanged属性,但是这个属性属于TextBox控件,不用担心,ComboBox中存在TextBox,所以关键问题就是如何找到ComboBox中的TextBox控件。

    ComboBox控件的默认组成:

第一层(1个控件):

System.Windows.Controls.Grid

第二层(2个控件):

System.Windows.Controls.Primitives.Popup;

Microsoft.Windows.Themes.ListBoxChrome;

System.Windows.Controls.TextBox;

System.Windows.Controls.Primitives.ToggleButton Content: IsChecked:False

控件都是按顺序排列的,所以取得TextBox控件,如下:

((TextBox)VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(this.cbServer, 0), 2)).TextChanged += new TextChangedEventHandler(SetDataBaseIsEnabled);

 注意:这段代码要放在Window_Loaded()事件中,不能放在页面的构造方法中。

就可以为ComboBox控件添加上TextChanged属性了。

PS:查找ComboBox中控件的代码:

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(this.cbServer); i++)
            {
                DependencyObject o1 = VisualTreeHelper.GetChild(this.cbServer, i);
                for (int j = 0; j < VisualTreeHelper.GetChildrenCount(o1); j++)
                {
                    DependencyObject o2 = VisualTreeHelper.GetChild(o1, j);
                }
            }
        }

 

WPF之ComboBox的VisualTreeHelper

原文:https://www.cnblogs.com/lonelyxmas/p/10709216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!