次の方法で共有


方法: SelectedValue、SelectedValuePath、SelectedItem を使用する

この例では、SelectedValueプロパティとSelectedValuePath プロパティを使用して、SelectedItemTreeViewの値を指定する方法を示します。

SelectedValuePath プロパティは、SelectedValue内のSelectedItemTreeViewを指定する方法を提供します。 SelectedItemは、Items コレクション内のオブジェクトを表し、TreeViewは、選択した項目の 1 つのプロパティの値を表示します。 SelectedValuePath プロパティは、SelectedValue プロパティの値を決定するために使用されるプロパティへのパスを指定します。 このトピックの例では、この概念を説明します。

次の例は、従業員情報を含む XmlDataProvider を示しています。

<XmlDataProvider x:Key="myEmployeeData" XPath="/EmployeeData">
  <x:XData>
    <EmployeeData xmlns="">
      <EmployeeInfo>
        <EmployeeName>Jesper Aabergy</EmployeeName>
        <EmployeeWorkDay>Monday</EmployeeWorkDay>
        <EmployeeWorkDay>Wednesday</EmployeeWorkDay>
        <EmployeeWorkDay>Friday</EmployeeWorkDay>
        <EmployeeStartTime>8:00am</EmployeeStartTime>
        <EmployeeNumber>12345</EmployeeNumber>
      </EmployeeInfo>
      <EmployeeInfo>
        <EmployeeName>Dominik Paiha</EmployeeName>
        <EmployeeWorkDay>Monday</EmployeeWorkDay>
        <EmployeeWorkDay>Tuesday</EmployeeWorkDay>
        <EmployeeStartTime>6:30am</EmployeeStartTime>
        <EmployeeNumber>98765</EmployeeNumber>
      </EmployeeInfo>
    </EmployeeData>
  </x:XData>
</XmlDataProvider>

次の例では、HierarchicalDataTemplateEmployeeNameEmployeeWorkDayを表示するEmployeeを定義します。 HierarchicalDataTemplateでは、テンプレートの一部としてEmployeeNumberが指定されていないことに注意してください。

<HierarchicalDataTemplate x:Key="SampleTemplate" DataType="EmployeeInfo" 
  ItemsSource ="{Binding XPath=EmployeeWorkDay}">
  <TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>

次の例は、前に定義したTreeViewを使用し、HierarchicalDataTemplate プロパティをSelectedValueに設定するEmployeeNumberを示しています。 EmployeeNameTreeViewを選択すると、SelectedItem プロパティは、選択したEmployeeInfoに対応するEmployeeNameデータ項目を返します。 ただし、このSelectedValuePathTreeViewEmployeeNumberに設定されているため、SelectedValueEmployeeNumberに設定されます。

<TreeView ItemsSource="{Binding Source={StaticResource myEmployeeData}, 
    ItemTemplate={StaticResource SampleTemplate},
    XPath=EmployeeInfo}" 
    Name="myTreeView" 
    SelectedValuePath="EmployeeNumber" 
    />

<TextBlock Margin="10">SelectedValuePath: </TextBlock>
<TextBlock Margin="10,0,0,0" 
           Text="{Binding ElementName=myTreeView, 
                          Path=SelectedValuePath}"
           Foreground="Blue"/>

<TextBlock Margin="10">SelectedValue: </TextBlock>
<TextBlock Margin="10,0,0,0" 
           Text="{Binding ElementName=myTreeView, 
                          Path=SelectedValue}"
           Foreground="Blue"/>

こちらも参照ください