CsDebugScript.UI.InteractiveResultVisualizer.CreateTreeItem C# (CSharp) Method

CreateTreeItem() private method

private CreateTreeItem ( IResultTreeItem resultTreeItem, int level ) : System.Windows.Controls.TreeViewItem
resultTreeItem IResultTreeItem
level int
return System.Windows.Controls.TreeViewItem
        private TreeViewItem CreateTreeItem(IResultTreeItem resultTreeItem, int level)
        {
            TreeViewItem item = new TreeViewItem();
            Grid grid = CreateTreeItemGrid(level);

            UIElement name = CreateTextWithIcon(resultTreeItem.Name, resultTreeItem.Image);
            grid.Children.Add(name);
            object itemValue = resultTreeItem.Value;
            if (itemValue is UIElement)
            {
                Grid.SetColumn((UIElement)itemValue, ValueColumnIndex);
                grid.Children.Add((UIElement)itemValue);
            }
            else
            {
                TextBlock value = new TextBlock();
                value.Text = resultTreeItem.ValueString;
                Grid.SetColumn(value, ValueColumnIndex);
                grid.Children.Add(value);
            }

            TextBlock type = new TextBlock();
            type.Text = resultTreeItem.Type;
            Grid.SetColumn(type, TypeColumnIndex);
            grid.Children.Add(type);
            item.Header = grid;
            item.Tag = new TreeViewItemTag()
            {
                ResultTreeItem = resultTreeItem,
                Level = level,
            };
            if (resultTreeItem.Children.Any())
                item.Items.Add(0);
            item.Expanded += TreeViewItem_Expanded;
            return item;
        }