WPF之层级数据模板HierarchicalDataTemplate的使用
HierarchicalDataTemplate是能够帮助层级控件显示层级数据的模板,一般多用于MenuItem和TreeViewItem,也可自己实现层级数据结构。
1、HierarchicalDataTemplate + List
数据:
using System.Collections.Generic;
namespace CSDNWpfApp.com.data
{
//公司数据
public class CompanyData
{
public string Name {
get; set; }
public List<DempartmentData> DempartmentDatas {
get; set; }
}
//部门数据
public class DempartmentData
{
public string Name {
get; set; }
public List<EmployeeData> EmployeeDatas {
get; set; }
}
//员工
public class EmployeeData
{
public string Name {
get; set; }
}
}
界面:
<Window x:Class="CSDNWpfApp.TreeViewWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CSDNWpfApp" xmlns:da="clr-namespace:CSDNWpfApp.com.data"
mc:Ignorable="d"
Title="TreeViewWindow" Height="450" Width="800">
<Window.Resources>
<HierarchicalDataTemplate DataType="{x:Type da:CompanyData}" ItemsSource="{Binding Path=DempartmentDatas}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type da:DempartmentData}" ItemsSource="{Binding Path=EmployeeDatas}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type da:Empl