WPF:数据绑定--分层数据模板
实现效果:
- Menu与ListView都进行数据模板绑定,分层显示数据
关键字:
- HierarchicalDataTemplate
- : 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"));
扩展:
- 示例中,ListLeagueList 是 League 对象的列表。 每个 League 对象都有一个 Name 和 Division 对象的集合。 每个 Division 都有一个 Name 和 Team 对象的集合,并且每个 Team 对象都有一个 Name。
- 通过使用 HierarchicalDataTemplate,您可以轻松地显示包含其他列表的列表数据。
- List<T> 类:表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法。
绑定后若需动态添加或删除子项,建议继承ObservableCollection<T>
继承的话一般有:
public League this[string name] => this.FirstOrDefault(l => l.Name == name);
相关推荐
yangkang 2020-11-09
lbyd0 2020-11-17
sushuanglei 2020-11-12
85477104 2020-11-17
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
lizhengjava 2020-11-13
星月情缘 2020-11-13
huangxiaoyun00 2020-11-13
luyong0 2020-11-08
腾讯soso团队 2020-11-06
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gaobudong 2020-11-04
wwwjun 2020-11-02
gyunwh 2020-11-02
EchoYY 2020-10-31
dingyahui 2020-10-30