public void ReScanForCollapseStates()
{
foreach (NodeControl nodeControl in GetNodeControls())
{
if (nodeControl.ChildNodes.Count == 0)
{
nodeControl.CollapseControl.State = CollapseState.None;
}
else if (nodeControl.ChildNodes.All(q => q.IsCollapsed))
{
nodeControl.CollapseControl.State = CollapseState.Collapsed;
}
else if (nodeControl.ChildNodes.All(q => !q.IsCollapsed))
{
nodeControl.CollapseControl.State = CollapseState.Expanded;
}
else
{
nodeControl.CollapseControl.State = CollapseState.SemiCollapsed;
}
}
}