private TreeViewItem BuildTreeViewItem(AbstractNode fileNode) { TreeViewItem viewNode = new TreeViewItem(); viewNode.Header = fileNode.Name; if (fileNode.IsDirectory()) { Action <AbstractNode> addFileNodeToViewNode = node => viewNode.Items.Add(BuildTreeViewItem(node)); fileNode.Children.ForEach(addFileNodeToViewNode); } return(viewNode); }