Beispiel #1
0
 /// <summary>
 /// Cuts all the single-child root, returning the first child that has more than 1 child of its own.
 /// If the first node has 0 childs, returns itself.
 /// Doesn't set the new root node parent to null.
 /// </summary>
 public ObservableCollection <ModelTreeItem> Trim()
 {
     if (this.ChildItems.Count == 1)
     {
         return(ChildItems[0].Trim());
     }
     else if (!ChildItems.Any(ci => ci.HasData))
     {
         return(new ObservableCollection <ModelTreeItem>(ChildItems.SelectMany(ci => ci.Trim())));
     }
     return(new ObservableCollection <ModelTreeItem>(new ModelTreeItem[] { this }));
 }