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 關注
- 191 瀏覽
添加回答
舉報