对WPF 模版内容获取

2016-09-23 19:47:20来源:CSDN作者:qq_15260879人点击

好久没写博客了,关于WPF的东西网上有很多 知道与不知道的网上都一大堆,现在做一个项目遇到一个问题 如何获取模版里面的值到CS文件去,如果是用MVVM去写大不了可以去VIEWMODEL里去封装调用。但有些功能就必须写在事件里,那么问题就来了 在模版里的控件如何去找了!我想过用反射 很麻烦后来跟前辈们一起想到了两个方法 贴出来 让各位参考 然后提出不足的地方 

   private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            TextBox chkAll = FindFirstVisualChild<TextBox>(grid, "sss");
        }


        public static T FindFirstVisualChild<T>(DependencyObject obj, string childName) where T : DependencyObject
        {
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                if (child != null && child is T && child.GetValue(FrameworkElement.NameProperty).ToString() == childName)
                {
                    return (T)child;
                }
                else
                {
                    T childOfChild = FindFirstVisualChild<T>(child, childName);
                    if (childOfChild != null)
                    {
                        return childOfChild;
                    }
                }
            }
            return null;
        }

如果有更好的办法可以提出来一起分享!

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台