WPF:数据绑定--分层数据模板

实现效果:

  1. Menu与ListView都进行数据模板绑定,分层显示数据

clipboard.png

clipboard.png

关键字:

  1. HierarchicalDataTemplate
  2. : List<League>

代码:
xaml:
每层对应一个对象的列表

<DockPanel.Resources>
    <local:ListLeagueList x:Key="MyList"/>

    <HierarchicalDataTemplate DataType    = "{x:Type local:League}"
                        ItemsSource = "{Binding Path=Divisions}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <HierarchicalDataTemplate DataType    = "{x:Type local:Division}"
                        ItemsSource = "{Binding Path=Teams}">
        <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>

    <DataTemplate DataType="{x:Type local:Team}">
        <TextBlock Text="{Binding Path=Name}"/>
    </DataTemplate>
</DockPanel.Resources>

绑定数据源的构成

 public class ListLeagueList : List<League>
{
    public ListLeagueList()
    {
        League l;
        Division d;

        Add(l = new League("League A"));
        l.Divisions.Add((d = new Division("Division A")));
        d.Teams.Add(new Team("Team I"));
        d.Teams.Add(new Team("Team II"));
        d.Teams.Add(new Team("Team III"));
        d.Teams.Add(new Team("Team IV"));
        d.Teams.Add(new Team("Team V"));
        l.Divisions.Add((d = new Division("Division B")));
        d.Teams.Add(new Team("Team Blue"));

扩展:

  1. 示例中,ListLeagueList 是 League 对象的列表。 每个 League 对象都有一个 Name 和 Division 对象的集合。 每个 Division 都有一个 Name 和 Team 对象的集合,并且每个 Team 对象都有一个 Name。
  2. 通过使用 HierarchicalDataTemplate,您可以轻松地显示包含其他列表的列表数据。
  3. List<T> 类:表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。

绑定后若需动态添加或删除子项,建议继承ObservableCollection<T>
继承的话一般有:

public League this[string name] => this.FirstOrDefault(l => l.Name == name);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值