private LiteTreeViewItemViewModel AddChild(object child, int index = -1) { var myTreeItem = new LiteTreeViewItemViewModel(); Add(myTreeItem, index); myTreeItem.InnerObject = child; _itemsToTreeItems[child] = myTreeItem; _treeItemsToItems[myTreeItem] = child; return(myTreeItem); }
public void Add(LiteTreeViewItemViewModel child, int index = -1) { if (Children == null) { Children = new List <LiteTreeViewItemViewModel>(); } if (index == -1) { Children.Add(child); } else { Children.Insert(index, child); } child.MyParent = this; child.Level = this.Level + 1; }
void MyItemsSourceChanged(DependencyPropertyChangedEventArgs eventArgs) { var observableCollectionAdv = new ObservableCollection <LiteTreeViewItemViewModel>(); if (Root != null) { Root.Dispose(); } if (eventArgs.NewValue != null) { var inputCollection = eventArgs.NewValue as IEnumerable; Root = new LiteTreeViewItemViewModel { IsOpen = true, Level = -1 }; Root.InnerObject = new HaveChildrenCollectionWrapper(inputCollection); Root.FillTreeList(observableCollectionAdv); } InternalCollection = observableCollectionAdv; ItemsSource = InternalCollection; }