/// <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; }
/// <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); }