zoukankan      html  css  js  c++  java
  • TreeView 绑定到深度未知的数据源

    有时您可能需要将 TreeView 绑定到深度未知的数据源。
    如果数据具有递归性质,则可能会发生这种情况;文件系统或公司的组织结构就属于这种数据,在文件系统中,文件夹还可以包含文件夹,在公司的组织结构中,员工又有自己的直属员工。
    数据源必须有分层的对象模型。
    例如,一个 Employee 类可能包含一个由 Employee 对象组成的集合,其中的每个对象都是一位员工的直属员工。
    如果数据以未分层方式表示,则您必须构建该数据的分层表示形式。
    设置 ItemsControl.
    ItemTemplate
    属性时,如果 ItemsControl 为每个子项生成了一个 ItemsControl,则子级 ItemsControl 使用同一 ItemTemplate 作为父级。
    例如,如果设置绑定到数据的 TreeViewItemTemplate 属性,则所生成的每个 TreeViewItem 都会使用分配给 TreeViewItemTemplate 属性的 DataTemplate
    借助 HierarchicalDataTemplate,您可以在数据模板中为 TreeViewItem 或任何 HeaderedItemsControl 指定 ItemsSource
    设置 HierarchicalDataTemplate.
    ItemsSource
    属性后,在应用 HierarchicalDataTemplate 时会使用该值。
    通过使用 HierarchicalDataTemplate,您可以以递归方式为 TreeView 中的每个 TreeViewItem 设置 ItemsSource
    <Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
    <Page.Resources>
    <XmlDataProvider x:Key="myCompany" XPath="Company/Employee">
    <x:XData>
    <Company xmlns="">
    <Employee Name="Don Hall">
    <Employee Name="Alice Ciccu">
    <Employee Name="David Pelton">
    <Employee Name="Vivian Atlas"/>
    </Employee>
    <Employee Name="Jeff Price"/>
    <Employee Name="Andy Jacobs"/>
    </Employee>
    <Employee Name="Bill Malone">
    <Employee Name="Maurice Taylor"/>
    <Employee Name="Sunil Uppal"/>
    <Employee Name="Qiang Wang"/>
    </Employee>
    </Employee>
    </Company>
    </x:XData>
    </XmlDataProvider>

    <!-- Bind the HierarchicalDataTemplate.ItemsSource property to the employees under
    each Employee element.
    -->
    <HierarchicalDataTemplate x:Key="EmployeeTemplate"
    ItemsSource
    ="{Binding XPath=Employee}">
    <TextBlock Text="{Binding XPath=@Name}" ></TextBlock>
    </HierarchicalDataTemplate>

    <Style TargetType="TreeViewItem">
    <Setter Property="IsExpanded" Value="True"/>
    </Style>
    </Page.Resources>

    <Grid>
    <TreeView ItemsSource="{Binding Source={StaticResource myCompany}}"
    ItemTemplate
    ="{StaticResource EmployeeTemplate}"/>
    </Grid>
    </Page>
  • 相关阅读:
    爬取笔趣阁小说(一念永恒)
    爬虫requests爬去网页乱码问题
    requests bs4 datetime re json
    添加背景音乐。c
    strip()
    爬虫学习中遇到的问题
    super的用法(带了解)
    user-agent
    输入n个字符串,用空格隔开。这些字符串中有重复出现的。现在统计每个字符串出现的次数,并找出出现次数最多的字符串。
    字节跳动小程序的一些坑
  • 原文地址:https://www.cnblogs.com/tgcoy/p/2407012.html
Copyright © 2011-2022 走看看