示例#1
0
        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);
        }