internal void SetIsExpanded(TreeNodeAdv node, bool value) { if (Root == node && !value) return; //Can't collapse root node if (value) OnExpanding(node); else OnCollapsing(node); if (value && !node.IsExpandedOnce) { if (AsyncExpanding && LoadOnDemand) { AddExpandingNode(node); node.AssignIsExpanded(true); Invalidate(); } ReadChilds(node, AsyncExpanding); RemoveExpandingNode(node); } node.AssignIsExpanded(value); SmartFullUpdate(); if (value) OnExpanded(node); else OnCollapsed(node); }