次の方法で共有


方法 : 単純または複雑な TreeView を作成する

更新 : 2007 年 11 月

この例では、単純または複雑な TreeView コントロールを作成する方法を示します。

TreeViewTreeViewItem コントロールの階層で構成されます。TreeViewItem は、単純なテキスト文字列を含むことも、Button コントロールや、コンテンツが埋め込まれた StackPanel などのさらに複雑なコンテンツを含むこともできます。TreeView のコンテンツは、明示的に定義することも、データ ソースが提供することもできます。このトピックでは、これらの概念の例を示します。

使用例

TreeViewItemHeader プロパティには、TreeView がその項目に対して表示するコンテンツが含まれます。TreeViewItem は、子要素として TreeViewItem を持つこともでき、これらの子要素は Items プロパティを使用して定義できます。

Header プロパティにテキスト文字列を設定することで TreeViewItem のコンテンツを明示的に定義する方法を次の例に示します。

<TreeView>
  <TreeViewItem Header="Employee1">
    <TreeViewItem Header="Jesper"/>
    <TreeViewItem Header="Aaberg"/>
    <TreeViewItem Header="12345"/>
  </TreeViewItem>
 <TreeViewItem Header="Employee2">
    <TreeViewItem Header="Dominik"/>
    <TreeViewItem Header="Paiha"/>
    <TreeViewItem Header="98765"/>
  </TreeViewItem>
</TreeView>

Button コントロールである Items を定義することで TreeViewItem の子要素を定義する方法を次の例に示します。

<TreeView>
  <TreeViewItem Header ="Employee1">
    <TreeViewItem.Items>
      <Button>Jesper</Button>
      <Button>Aaberg</Button>
      <Button>12345</Button>
    </TreeViewItem.Items>
  </TreeViewItem>
  <TreeViewItem Header="Employee2">
    <TreeViewItem.Items>
      <Button>Dominik</Button>
      <Button>Paiha</Button>
      <Button>98765</Button>
    </TreeViewItem.Items>
  </TreeViewItem>
</TreeView>

XmlDataProviderTreeViewItem のコンテンツを提供し、HierarchicalDataTemplate でコンテンツの表示を定義して、TreeView を作成する方法を次の例に示します。

<XmlDataProvider x:Key="myEmployeeData" XPath="/EmployeeData">
  <x:XData>
    <EmployeeData >
      <EmployeeInfo>
        <EmployeeInfoData>Employee1</EmployeeInfoData>
        <Item Type="FirstName">Jesper</Item>
        <Item Type="LastName">Aaberg</Item>
        <Item Type="EmployeeNumber">12345</Item>
      </EmployeeInfo>
      <EmployeeInfo>
        <EmployeeInfoData>Employee2</EmployeeInfoData>
        <Item Type="FirstName">Dominik</Item>
        <Item Type="LastName">Paiha</Item>
        <Item Type="EmployeeNumber">98765</Item>
      </EmployeeInfo>
    </EmployeeData>
  </x:XData>
</XmlDataProvider>
<HierarchicalDataTemplate DataType="EmployeeInfo" 
  ItemsSource ="{Binding XPath=Item}">
  <TextBlock Text="{Binding XPath=EmployeeInfoData}" />
</HierarchicalDataTemplate>
<TreeView ItemsSource="{Binding Source={StaticResource myEmployeeData}, 
  XPath=EmployeeInfo}"/>

TreeViewItem のコンテンツとして、コンテンツが埋め込まれた DockPanel コントロールを含む TreeView を作成する方法を次の例に示します。

<TreeView>
  <TreeViewItem Header="Animals">
    <TreeViewItem.Items>
    <DockPanel>
      <Image Source="data\fish.png"/>
      <TextBlock Margin="5" Foreground="Brown"
                 FontSize="12">Fish</TextBlock>
    </DockPanel>
    <DockPanel>
      <Image Source="data\dog.png"/>
      <TextBlock Margin="5" Foreground="Brown"
                 FontSize="12">Dog</TextBlock>
    </DockPanel>
    <DockPanel>
      <Image Source="data\cat.png"/>
      <TextBlock Margin="5" Foreground="Brown"
                 FontSize="12">Cat</TextBlock>
    </DockPanel>
  </TreeViewItem.Items>
  </TreeViewItem>      
</TreeView>

参照

概念

TreeView の概要

参照

TreeView

TreeViewItem

その他の技術情報

TreeView に関する「方法」トピック

TreeView のサンプル