private void RecursiveComputeEnabledStateForFolders(PackageExportTreeViewItem pitem, HashSet<PackageExportTreeViewItem> done)
{
if (pitem.isFolder)
{
if (pitem.hasChildren)
{
foreach (TreeViewItem item in pitem.children)
{
this.RecursiveComputeEnabledStateForFolders(item as PackageExportTreeViewItem, done);
}
}
if (!done.Contains(pitem))
{
EnabledState folderChildrenEnabledState = this.GetFolderChildrenEnabledState(pitem);
pitem.enabledState = folderChildrenEnabledState;
if (folderChildrenEnabledState == EnabledState.Mixed)
{
done.Add(pitem);
for (PackageExportTreeViewItem item2 = pitem.parent as PackageExportTreeViewItem; item2 != null; item2 = item2.parent as PackageExportTreeViewItem)
{
if (!done.Contains(item2))
{
item2.enabledState = EnabledState.Mixed;
done.Add(item2);
}
}
}
}
}
}