List<infowindow> infowindows = Treeviewhelper. Getchildobjects<infowindow> (Gridmap, "");
public class Treeviewhelper
{
Public T getparentobject<t> (DependencyObject obj, string name) where t:frameworkelement
{
DependencyObject parent = visualtreehelper.getparent (obj);
while (parent! = NULL)
{
if (Parent is T && ((T) parent). Name = = Name | String. IsNullOrEmpty (name)))
{
Return (T) parent;
}
Parent = visualtreehelper.getparent (parent);
}
return null;
}
Public T getchildobject<t> (DependencyObject obj, string name) where t:frameworkelement
{
DependencyObject child = null;
T grandchild = null;
for (int i = 0; I <= visualtreehelper.getchildrencount (obj)-1; i++)
{
Child = Visualtreehelper.getchild (obj, i);
if (Child is T && ((T) child). Name = = Name | String. IsNullOrEmpty (name)))
{
return (T) child;
}
Else
{
grandchild = getchildobject<t> (child, name);
if (grandchild! = null)
return grandchild;
}
}
return null;
}
Public list<t> getchildobjects<t> (DependencyObject obj, string name) 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 && ((T) child). Name = = Name | | String. IsNullOrEmpty (name)))
{
Childlist.add ((T) child);
}
Childlist.addrange (getchildobjects<t> (Child, ""));
}
return childlist;
}
}
Treeviewhelper usage, find UIElement for child