我正在尝试使用WPF树创建Below父子结构。
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
{
/////
}
}
答案 0 :(得分:1)
您的问题是,每次展开节点时,展开的节点的子节点始终为“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);