private void RebuildVisibilityTree(TreeViewItem item, List<TreeViewItem> visibleItems)
{
if ((item != null) && item.hasChildren)
{
for (int i = 0; i < item.children.Count; i++)
{
if (item.children[i] != null)
{
visibleItems.Add(item.children[i]);
this.RebuildVisibilityTree(item.children[i], visibleItems);
}
}
}
}