Iterating through Tree and open subtrees dynamically
Posted: Mon Oct 03, 2011 2:02 pm
I followed the instruction to iterate through a tree and click on each element in the tree. This does work fine if all TreeItems (and Sub Items) are expanded. As soon as I need to expand a TreeItem the items below won't be handled. This is how what I have coded so far:
Code: Select all
public void ExtractTree()
{
//Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'FormA.Workstations.TreeItemWorkstations' at Center.", repo.FormA.Workstations.TreeItemWorkstationsInfo, new RecordItemIndex(-1));
if (! repo.FormA.Workstations.TreeItemWorkstations.Expanded){
repo.FormA.TreeItemWorkstations.DoubleClick();
}
foreach (TreeItem item in repo.FormA.Workstations.TreeItemWorkstations.Items)
{
IterateTree(item);
}
}
/// <summary>
/// Iterate Tree
/// </summary>
/// <param name="treeItem"></param>
public static void IterateTree(TreeItem treeItem)
{
// Expand Tree Item if necessary
if (! treeItem.Expanded)
{
treeItem.DoubleClick();
}
// Loop through Items
foreach (TreeItem item in treeItem.Items)
{
// Click Tree Item
if (! treeItem.Expanded) {
treeItem.DoubleClick();
}
IList<TreeItem> myItems = item.FindChildren<TreeItem>();
foreach (TreeItem myItem in myItems)
{
IterateTree(myItem);
}
// Click Tree Item
item.DoubleClick();
}
}