zoukankan      html  css  js  c++  java
  • HierarchicalDataTemplate

    之前写控件模板的时候已经用过,当时觉得理解了,一下手,又有很多问题,有些概念不清楚,有些属性不知道什么意思,今天就细化一下

    这是MSDN上的一个例子,在这个示例中, ListLeagueList 是 League 对象的列表。每 League 对象具有 Name 和 Division 对象的集合。每 Division 具有 Name 和 Team 对象的集合,因此,每 Team 对象具有 Name,就是这样一个数据结构

    View Code
    <Window x:Class="SDKSample.Window1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="HierarchicalDataTemplate Sample"
      xmlns:src="clr-namespace:SDKSample">
      <DockPanel>
        <DockPanel.Resources>
          <src:ListLeagueList x:Key="MyList"/>
    
          <HierarchicalDataTemplate DataType    = "{x:Type src:League}"
                                    ItemsSource = "{Binding Path=Divisions}">
            <TextBlock Text="{Binding Path=Name}"/>
          </HierarchicalDataTemplate>
    
          <HierarchicalDataTemplate DataType    = "{x:Type src:Division}"
                                    ItemsSource = "{Binding Path=Teams}">
            <TextBlock Text="{Binding Path=Name}"/>
          </HierarchicalDataTemplate>
    
          <DataTemplate DataType="{x:Type src:Team}">
            <TextBlock Text="{Binding Path=Name}"/>
          </DataTemplate>
        </DockPanel.Resources>
    
        <Menu Name="menu1" DockPanel.Dock="Top" Margin="10,10,10,10">
            <MenuItem Header="My Soccer Leagues"
                      ItemsSource="{Binding Source={StaticResource MyList}}" />
        </Menu>
    
        <TreeView>
          <TreeViewItem ItemsSource="{Binding Source={StaticResource MyList}}" Header="My Soccer Leagues" />
        </TreeView>
    
      </DockPanel>
    </Window>

    所谓HierarchicalDataTemplate ,按字面意思理解,就是分层数据模板,专门用来定义分层的数据类型显示格式的一个模板,最常用的就是TreeView、Menu,

    挨个属性解释,

    DataType   指当前模板对应哪种数据类型,也就是说哪个数据类型的数据进来后用此种格式显示

    ItemsSource 当前类型的子项集合取哪个属性,这个属性应该是个IEnumerable类型的

    然后就没什么了

    标签内定义显示的具体格式,用什么空间显示,绑定哪个字段属性

    当然 给控件赋值的时候一般是这种格式

    TreeView.ItemsSource=.....

    等号右边是一个IEnumerable类型的,里面的项会作为控件的数据源,项的集合就是控件Item的集合

    最终显示格式是这样的

    纸上得来终觉浅,绝知此事要躬行

  • 相关阅读:
    dup和dup2
    cassandra nodetools
    python 之mechanize
    IDEA使用GsonFormat
    游标应用
    SQL 2005 with(nolock)详解
    SET NOCOUNT ON
    异常处理机制(Begin try Begin Catch)
    FILLFACTOR 作用 sql
    触发器语法
  • 原文地址:https://www.cnblogs.com/goldren/p/2834540.html
Copyright © 2011-2022 走看看