2 回答

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
您應(yīng)該按照文檔ItemTemplate
中的說明創(chuàng)建一個(gè)。
您可以使用XamlReader類以編程方式執(zhí)行此操作。像這樣的東西:
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貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果你使用C#構(gòu)建TreeView,我建議使用遍歷的方式添加TreeViewNode。
由于缺少指示,TreeView 不會(huì)自動(dòng)處理 Item 的 Children。在您提供的文檔中,TreeView 有一個(gè)DataTemplate指令,因此子級(jí)可以渲染。
您可以像這樣更改代碼:
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 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)