Aggiungo TreeViewItem manualmente nel codice dietro e desidero utilizzare un DataTemplate per visualizzarli ma non riesco a capire come. Spero di fare qualcosa di simile ma gli oggetti sono visualizzati come intestazioni vuote. Che cosa sto facendo di sbagliato?Utilizzo di ItemTemplate per TreeView quando si aggiungono elementi nel codice
XAML
<Window x:Class="TreeTest.WindowTree"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WindowTree" Height="300" Width="300">
<Grid>
<TreeView Name="_treeView">
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=Age}" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</Window>
Dietro codice
using System.Windows;
using System.Windows.Controls;
namespace TreeTest
{
public partial class WindowTree : Window
{
public WindowTree()
{
InitializeComponent();
TreeViewItem itemBob = new TreeViewItem();
itemBob.DataContext = new Person() { Name = "Bob", Age = 34 };
TreeViewItem itemSally = new TreeViewItem();
itemSally.DataContext = new Person() { Name = "Sally", Age = 28 }; ;
TreeViewItem itemJoe = new TreeViewItem();
itemJoe.DataContext = new Person() { Name = "Joe", Age = 15 }; ;
itemSally.Items.Add(itemJoe);
_treeView.Items.Add(itemBob);
_treeView.Items.Add(itemSally);
}
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
Entrambe le soluzioni funzionano. Scusa per aver impiegato così tanto tempo a tornare da te. Alla fine non ho usato un albero alla fine, invece ho implementato una listbox gerarchica personalizzata. –
Urrà per Matt! proprio quello di cui avevo bisogno (la seconda soluzione) –