title: Binding Dictionary<string,List<Class>> to multiple TreeViewItem
body: <p>So I've got some data that I want to store in a treeview and I have it working with 2 branches but I'm stuck on getting more than that. I think a dictionary would be best for this cause it'll be easiest to store the IDs in a key when I come to add in the 'sanity checks'</p>
  
  <p>How I want my data to be presented:</p>
  
  <pre><code>--Internet Checks
  ----- 'Date, message, status'
  --------- 'Details'
  --Server Checks
  ----- 'Date, message, status'
  --------- 'Details'
  --Sanity Checks
  ----- 'Date, message, status'
  --------- 'Details'
  --------- 'Error1'
  --------- 'Error2'
  --------- 'Error3'
  --------- 'etc'
  --etc
  </code></pre>
  
  <p>And here's how it looks at the moment</p>
  
  <pre><code>--Internet Checks
  ----- 'Date, message, status'
  --Server Checks
  ----- 'Date, message, status'
  --Sanity Checks
  ----- 'Date, message, status'
  --etc
  </code></pre>
  
  <p>So here's how I have my xaml at the moment:</p>
  
  <pre><code>&lt;TreeView Name="treeView1" ItemsSource="{Binding Items}"&gt;
                  &lt;TreeView.ItemTemplate&gt;
                      &lt;HierarchicalDataTemplate ItemsSource="{Binding Path=Value.SubItems}"&gt;
                          &lt;TextBlock Text="{Binding Value.Text}" /&gt;
                          &lt;HierarchicalDataTemplate.ItemTemplate&gt;
                              &lt;DataTemplate&gt;
                                  &lt;TextBlock Text="{Binding Path=Value.Text}"/&gt;
                              &lt;/DataTemplate&gt;
                          &lt;/HierarchicalDataTemplate.ItemTemplate&gt;
                      &lt;/HierarchicalDataTemplate&gt;
                  &lt;/TreeView.ItemTemplate&gt;
              &lt;/TreeView&gt;
  </code></pre>
  
  <p>Here is my MenuItem class:</p>
  
  <pre><code>public class MenuItem
      {
          public MenuItem()
          {
              this.SubItems = new Dictionary&lt;int, MenuItem&gt;();
          }
  
          public Dictionary&lt;int, MenuItem&gt; SubItems { get; set; }
  
          public string Text { get; set; }
      }
  </code></pre>
  
  <p>And here is how I'm currently filling in the dictionary:</p>
  
  <pre><code>public Dictionary&lt;int, MenuItem&gt; Fill(string name, Dictionary&lt;int, MenuItem&gt; root, List&lt;HealthCheckHourModel&gt; list)
          {
              root.Add(nextNum, new MenuItem { Text = name + " Checks"});
              foreach (HealthCheckHourModel hchm in list)
              {
                  if (hchm.Message.Contains(name))
                  {
                      root[nextNum].SubItems.Add(hchm.ID, new MenuItem { Text = hchm.StartTime + " " + hchm.Message });
                      root[nextNum].SubItems[hchm.ID].SubItems.Add(-111, new MenuItem { Text = hchm.Details });
                  }
              }
              nextNum--;
              return root;
          }
  </code></pre>