/// <summary>Handle a node collapsing</summary> protected override void OnNodeCollapsing(CollapsingEventArgs e) { base.OnNodeCollapsing(e); var root = e.Node; var elem = e.Node.Tag as XElement; root.Nodes.Clear(); root.VirtualNodes = elem.HasElements; }
protected virtual void OnNodeCollapsing(CollapsingEventArgs e) { if (this.NodeCollapsing != null) { NodeCollapsing(this, e); } }
protected internal virtual bool CollapseNode(TreeGridNode node) { if (node.IsExpanded) { CollapsingEventArgs exp = new CollapsingEventArgs(node); this.OnNodeCollapsing(exp); if (!exp.Cancel) { this.LockVerticalScrollBarUpdate(true); this.SuspendLayout(); _inExpandCollapse = true; node.IsExpanded = false; foreach (TreeGridNode childNode in node.Nodes) { Debug.Assert(childNode.RowIndex != -1, "Row is NOT in the grid."); this.UnSiteNode(childNode); } CollapsedEventArgs exped = new CollapsedEventArgs(node); this.OnNodeCollapsed(exped); //TODO: Convert this to a specific NodeCell property _inExpandCollapse = false; this.LockVerticalScrollBarUpdate(false); this.ResumeLayout(true); this.InvalidateCell(node.Cells[0]); } return !exp.Cancel; } else { // row isn't expanded, so we didn't do anything. return false; } }
/// <summary> /// Collapses the node. /// </summary> /// <param name="node">The OutlookGridRow node.</param> /// <returns></returns> public bool CollapseNode(OutlookGridRow node) { if (!node.Collapsed) { CollapsingEventArgs exp = new CollapsingEventArgs(node); OnNodeCollapsing(exp); if (!exp.Cancel) { node.SetNodeCollapse(true); CollapsedEventArgs exped = new CollapsedEventArgs(node); OnNodeCollapsed(exped); } return !exp.Cancel; } else { // row isn't expanded, so we didn't do anything. return false; } }