<TreeView ItemsSource="{Binding}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Parts}"> <TextBlock Text="{Binding Name}"/> <HierarchicalDataTemplate.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding}"/> </DataTemplate> </HierarchicalDataTemplate.ItemTemplate> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); IList<Car> list = new List<Car>(); for (int i = 0; i < 5000; i ++) { list.Add(new Car() {Name = "test1" + i}); } foreach (var car in list) { car.Parts = new List<string>(); for (int i = 0; i < 500; i++) { car.Parts.Add("asdf" + i); } } this.DataContext = list; } } public class Car { public string Name { get; set; } public List<string> Parts { get; set; } }这些就是测试代码的主要部分
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Parts}">
<TextBlock Text="{Binding Name}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView> public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
IList<Car> list = new List<Car>();
for (int i = 0; i < 5000; i ++)
{
list.Add(new Car() {Name = "test1" + i});
} foreach (var car in list)
{
car.Parts = new List<string>();
for (int i = 0; i < 500; i++)
{
car.Parts.Add("asdf" + i);
}
} this.DataContext = list;
}
} public class Car
{
public string Name { get; set; } public List<string> Parts { get; set; }
}这些就是测试代码的主要部分