private void ClearChildrenSource(WPFTreeNode node) { node.ChildrenSource = null; foreach (var n in node.Children) { ClearChildrenSource(n); } }
private void CreateChildrenRows(WPFTreeNode node) { int index = Rows.IndexOf(node); if (index >= 0 || node == _root) // ignore invisible nodes { var nodes = node.AllVisibleChildren.ToArray(); Rows.InsertRange(index + 1, nodes); } }
private IEnumerable GetChildren(WPFTreeNode parent) { if (Model != null) { return(Model.GetChildren(parent.Tag)); } else { return(null); } }
public WPFTreeListView() { Rows = new ObservableCollectionAdv <WPFTreeNode>(); _root = new WPFTreeNode(this, null); _root.IsExpanded = true; ItemsSource = Rows; ItemContainerGenerator.StatusChanged += ItemContainerGeneratorStatusChanged; //Windows Forms font size = WPF font size * 72.0 / 96.0. this.FontSize = 9 * 96.0 / 72.0; this.FontFamily = new FontFamily("Microsoft Sans Serif"); this.Foreground = new SolidColorBrush(Colors.Black); }
internal void InsertNewNode(WPFTreeNode parent, object tag, int rowIndex, int index) { WPFTreeNode node = new WPFTreeNode(this, tag); if (index >= 0 && index < parent.Children.Count) { parent.Children.Insert(index, node); } else { index = parent.Children.Count; parent.Children.Add(node); } Rows.Insert(rowIndex + index + 1, node); }
private bool HasChildren(WPFTreeNode parent) { if (parent == Root) { return(true); } else if (Model != null) { return(Model.HasChildren(parent.Tag)); } else { return(false); } }
private void ChangeFocus(WPFTreeNode node) { var tree = node.Tree; if (tree != null) { var item = tree.ItemContainerGenerator.ContainerFromItem(node) as WPFTreeListViewItem; if (item != null) { item.Focus(); } else { tree.PendingFocusNode = node; } } }
internal void DropChildrenRows(WPFTreeNode node, bool removeParent) { int start = Rows.IndexOf(node); if (start >= 0 || node == _root) // ignore invisible nodes { int count = node.VisibleChildrenCount; if (removeParent) { count++; } else { start++; } Rows.RemoveRange(start, count); } }
internal void CreateChildrenNodes(WPFTreeNode node) { var children = GetChildren(node); if (children != null) { int rowIndex = Rows.IndexOf(node); node.ChildrenSource = children as INotifyCollectionChanged; foreach (object obj in children) { WPFTreeNode child = new WPFTreeNode(this, obj); child.HasChildren = HasChildren(child); node.Children.Add(child); } Rows.InsertRange(rowIndex + 1, node.Children.ToArray()); } }
internal void SetIsExpanded(WPFTreeNode node, bool value) { if (value) { if (!node.IsExpandedOnce) { node.IsExpandedOnce = true; node.AssignIsExpanded(value); CreateChildrenNodes(node); } else { node.AssignIsExpanded(value); CreateChildrenRows(node); } } else { DropChildrenRows(node, false); node.AssignIsExpanded(value); } }