2

I have a TreeView control that I have created in XAML in a WPF program

After adding a couple nodes at the root level, I have written code that loops through the tree structure like so:

        ItemCollection items = treeView1.Items;
        foreach (TreeViewItem n in items)
        {
          ...
        }

Once I find the place in this loop where I want to include a child node, how do I go about inserting a child?

xarzu
  • 8,657
  • 40
  • 108
  • 160

1 Answers1

2

This is a piece of very naive code that does it, you might want to make it more defensive if you actually use it.

var items = treeView1.Items;
var item = new TreeViewItem() { Header = "Interesting" };
items.Add(item);
var subitem = new TreeViewItem() {Header = "Sub Item"};
foreach (TreeViewItem n in items)
{
  if (n.Header == "Interesting")
    (n as TreeViewItem).Items.Add(subitem);
}
richardwiden
  • 1,584
  • 2
  • 12
  • 22
  • That adds an item as a child of `n`, it doesn't *insert* it after `n`. And `(n as TreeViewItem)` isn't necessary since `n` is declared to be a TreeViewItem. – Jim Balter Oct 04 '14 at 02:46