请教怎么获取某个控件的指定类型子控件啊

请问如何获取某个控件的指定类型子控件啊?
子控件是动态添加的,不一定是直属某个控件,也会是下级的下级。
多谢啦
wpf 查找子控件 动态添加 

------解决方案--------------------
public List<T> GetChildObjects<T>(DependencyObject obj) where T : FrameworkElement
        {
            DependencyObject child = null;
            List<T> childList = new List<T>();

            for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)
            {
                child = VisualTreeHelper.GetChild(obj, i);

                if (child is T)
                {
                    childList.Add((T)child);
                }
                childList.AddRange(GetChildObjects<T>(child));
            }
            return childList;
        }
循环判断。

比如:
 DataGrid items = this.DataGrid1;
 List<CheckBox> checkBoxs = GetChildObjects<CheckBox>(items);