private void GetChilds(TreeViewItem tvi, int id) { foreach (var item in treeList.Where(i => i.ParentID == id)) { TreeViewItem child = new TreeViewItem() { Header = item.Name }; if (tvi == null) { child.DataContext = item; myTree.Items.Add(child); } else { child.DataContext = item; tvi.Items.Add(child); } GetChilds(child, item.ID); } }