protected override IList <TreeViewItem> BuildRows(TreeViewItem root)
        {
            var tempRoot = new BuildTreeViewItem(-1);

            var data = m_DataCallback();

            foreach (var d in data)
            {
                tempRoot.AddChild(d);
            }

            var items = new List <TreeViewItem>();

            AddChildrenRecursive(tempRoot, -1, items);

            SetupParentsAndChildrenFromDepths(root, items);
            return(items);
        }