/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="host">Host.</param>
        /// <param name="nodeManager">NodeManager.</param>
        public TreeViewItemNodePresenter(
            TreeViewItem host,
            TreeViewNodeManager nodeManager,
            INodePresenter parent)
        {
            Host        = host;
            NodeManager = nodeManager;
            Parent      = parent;

            _header         = null;
            _expandedHeader = null;
        }
Exemple #2
0
        /// <summary>
        /// Add a new manager.
        /// </summary>
        /// <param name="node">The node to add a manager for.</param>
        /// <param name="index">The index to add the node to.</param>
        /// <returns>The newly added manager.</returns>
        private INodeManager AddManager(INode node, int index)
        {
            if (node == null)
            {
                throw new ArgumentNullException("node");
            }

            TreeView            view    = new TreeView();
            TreeViewNodeManager manager = new TreeViewNodeManager(view);

            manager.Nodes.Add(node);
            manager.ActiveNodeChanged += manager_ActiveNodeChanged;

            TabItem item = new TabItem();

            item.Header  = node.Text;
            item.Content = view;
            item.Tag     = manager;
            ChromeTab.SetShowCloseButton(item, false);
            _tabControl.Items.Add(item);

            return(manager);
        }
        /// <summary>
        /// Sync changes to the Nodes collection with the tree.
        /// </summary>
        /// <param name="sender">Object that raised the event.</param>
        /// <param name="e">Event args.</param>
        private void TreeViewItemNodePresenter_NodesChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            TreeViewNodeManager nodeManager = NodeManager as TreeViewNodeManager;

            nodeManager.HandleNodeCollectionChange(Host, this, e);
        }