private void AddVisibleChildrenRecursive(TreeViewTest.BackendData.Foo source, TreeViewItem dest)
{
if (this.IsExpanded(source.id))
{
if ((source.children != null) && (source.children.Count > 0))
{
dest.children = new List<TreeViewItem>(source.children.Count);
for (int i = 0; i < source.children.Count; i++)
{
TreeViewTest.BackendData.Foo foo = source.children[i];
dest.children[i] = new TreeViewTest.FooTreeViewItem(foo.id, dest.depth + 1, dest, foo.name, foo);
this.itemCounter++;
this.AddVisibleChildrenRecursive(foo, dest.children[i]);
}
}
}
else if (source.hasChildren)
{
dest.children = new List<TreeViewItem> { new TreeViewItem(-1, -1, null, string.Empty) };
}
}