WPF HierarchycalDataTemplate&;树形图
我正在尝试将递归集合绑定到WPF中的树视图。我只能看到UI中的第一级WPF HierarchycalDataTemplate&;树形图,wpf,hierarchicaldatatemplate,Wpf,Hierarchicaldatatemplate,我正在尝试将递归集合绑定到WPF中的树视图。我只能看到UI中的第一级 public class Employee { public string Name { get; set; } public List<Employee> Reportees { get; set; } } Employees = new ObservableCollection<Employee> { new Employee { Name = "Bob1", Reportees
public class Employee
{
public string Name { get; set; }
public List<Employee> Reportees { get; set; }
}
Employees = new ObservableCollection<Employee>
{
new Employee { Name = "Bob1", Reportees=new List<Employee>{ new Employee { Name = "Bob1's Sub1"}, new Employee { Name = "Bob1's Sub2"} } },
new Employee { Name = "Bob2", Reportees=new List<Employee>{ new Employee { Name = "Bob2's Sub1"}, new Employee { Name = "Bob2's Sub2"} } },
new Employee { Name = "Bob3", Reportees=new List<Employee>{ new Employee { Name = "Bob3's Sub1"}, new Employee { Name = "Bob3's Sub2"} } }
};
公共类员工
{
公共字符串名称{get;set;}
公共列表报告对象{get;set;}
}
员工=新的可观察收集
{
新员工{Name=“Bob1”,报告对象=新列表{new Employee{Name=“Bob1's Sub1”},新员工{Name=“Bob1's Sub2”}},
新员工{Name=“Bob2”,报告对象=新列表{new Employee{Name=“Bob2's Sub1”},新员工{Name=“Bob2's Sub2”}},
新员工{Name=“Bob3”,报告对象=新列表{new Employee{Name=“Bob3的Sub1”},新员工{Name=“Bob3的Sub2”}}
};
XAML
您的HierarchyCalDataTemplate缺少它的ItemsSource 大概是这样的:
<TreeView HorizontalAlignment="Left" Margin="10" VerticalAlignment="Top" Height="320" Width="300" ItemsSource="{Binding Employees}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type model:Employee}" ItemsSource="{Binding Reportees}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type System:String}" ItemsSource="{Binding Reportees}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
<TreeView HorizontalAlignment="Left" Margin="10" VerticalAlignment="Top" Height="320" Width="300" ItemsSource="{Binding Employees}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type model:Employee}" ItemsSource="{Binding Reportees}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type System:String}" ItemsSource="{Binding Reportees}">
<TextBlock Text="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>