2 回答
TA贡献2019条经验 获得超9个赞
您应该按照文档ItemTemplate
中的说明创建一个。
您可以使用XamlReader类以编程方式执行此操作。像这样的东西:
const string Xaml = "<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"><TreeViewItem ItemsSource=\"{Binding Children}\" Content=\"{Binding Name}\"/></DataTemplate>"; treeView.ItemTemplate = XamlReader.Load(Xaml) as DataTemplate;
TA贡献1804条经验 获得超7个赞
如果你使用C#构建TreeView,我建议使用遍历的方式添加TreeViewNode。
由于缺少指示,TreeView 不会自动处理 Item 的 Children。在您提供的文档中,TreeView 有一个DataTemplate指令,因此子级可以渲染。
您可以像这样更改代码:
public MainPage()
{
this.InitializeComponent();
var items = new List<Item>();
var rootItem = new Item();
rootItem.Name = "Root Item";
rootItem.Children.Add(new Item() { Name = "test child 1" });
items.Add(rootItem);
var treeView = new TreeView();
foreach (var root in items)
{
var rootNode = new TreeViewNode() { Content = root.Name };
if (root.Children.Count > 0)
{
foreach (var child in root.Children)
{
rootNode.Children.Add(new TreeViewNode() { Content = child.Name });
}
}
treeView.RootNodes.Add(rootNode);
}
stackPanel.Children.Add(treeView);
}
此致。
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报