Вставка родительского дочернего элемента дерева WPF: - PullRequest
0 голосов
/ 30 ноября 2010

Я пытаюсь создать структуру Below parent child, используя дерево WPF.

Tree

 ->Parent

    ->Child

      ->Grand Child.

Я написал следующий код, который не может быть вставлен для ребенка. Пожалуйста, помогите мне исправить это.

<Window x:Class="NewTree_DynamicNode.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TreeView Name="treeFileSystem" TreeViewItem.Expanded="treeFileSystem_Expanded_1">
            <TreeViewItem Header="Categories" x:Name="_ImageTree" Tag="hi" 
                  x:FieldModifier="private">
                <TreeViewItem TextBlock.FontStyle="Italic" 
                    Header="Loading..." Name="treeFileSystem2"/>
            </TreeViewItem>
        </TreeView>
    </Grid>
</Window>




private void treeFileSystem_Expanded_1(object sender, RoutedEventArgs e)
        {
            this._ImageTree = (TreeViewItem)e.OriginalSource;
            this._ImageTree.Items.Clear();

            try
            {
                for(int i=0 ; i<2; i++)  
                {
                   TreeViewItem temp = new TreeViewItem();
                   TreeViewItem temp1 = new TreeViewItem();
                    temp.Header = "Parent";
                    temp1.Header = "Child";
                    temp.Items.Add(temp1);                
                    this._ImageTree.Items.Add(temp);                      
                }
            }
            catch
            {
                  /////
            }
        }

1 Ответ

1 голос
/ 30 ноября 2010

Ваша проблема в том, что каждый раз, когда вы расширяете узел, дочерний узел для развертываемого узла всегда 'Parent'

Я не совсем уверен, чего вы пытаетесь достичь, но вот код:

TreeViewItem temp = new TreeViewItem();
temp.Header = "Child";
temp.Items.Add(null);
this._ImageTree.Items.Add(temp);

РЕДАКТИРОВАТЬ - это для конкретных имен в иерархии

TreeViewItem temp = new TreeViewItem();
var header = string.Empty;
switch (_ImageTree.Header.ToString())
{
    case "Categories":
        header = "Parent";
        break;
    case "Parent":
        header = "Child";
        break;
    case "Child":
        header = "GrandChild";
        break;
    default:
        header = "Child of " + _ImageTree.Header;
        break;
}
temp.Header = header;
temp.Items.Add(null);
this._ImageTree.Items.Add(temp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...