对WPF 模版内容获取

好久没写博客了,关于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;
        }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值