/// <summary> /// Toggles the expanded/collapsed state of the specified tree item. /// This will raise the EventSubtreeExpanded or EventSubtreeCollapsed /// events based on the current item's state. /// </summary> /// <param name="item"></param> public void ToggleSubtree(TreeViewItemRenderingState item) { if (d_itemModel == null) { return; } item.d_subtreeIsExpanded = !item.d_subtreeIsExpanded; var args = new ItemViewEventArgs(this, d_itemModel.MakeIndex(item.d_childId, item.d_parentIndex)); if (item.d_subtreeIsExpanded) { ComputeRenderedChildrenForItem(item, d_itemModel.MakeIndex(item.d_childId, item.d_parentIndex), ref d_renderedMaxWidth, ref d_renderedTotalHeight); OnSubtreeExpanded(args); } else { ClearItemRenderedChildren(item, ref d_renderedTotalHeight); OnSubtreeCollapsed(args); } UpdateScrollbars(); // we need just a simple invalidation. No need to redo the render state // as we modified it ourself directly. Invalidate(false); }
protected virtual void OnSelectionChanged(ItemViewEventArgs args) { InvalidateView(false); FireEvent(EventSelectionChanged, args); }
protected virtual void OnSubtreeCollapsed(ItemViewEventArgs args) { FireEvent(EventSubtreeCollapsed, args, EventNamespace); }