Example #1
0
        /// <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);
        }
Example #2
0
 protected virtual void OnSelectionChanged(ItemViewEventArgs args)
 {
     InvalidateView(false);
     FireEvent(EventSelectionChanged, args);
 }
Example #3
0
 protected virtual void OnSubtreeCollapsed(ItemViewEventArgs args)
 {
     FireEvent(EventSubtreeCollapsed, args, EventNamespace);
 }