共用方式為


如何:使用 SelectedValue、SelectedValuePath 和 SelectedItem

此範例顯示如何使用 SelectedValueSelectedValuePath 屬性來指定 TreeViewSelectedItem 值。

範例

SelectedValuePath 屬性能讓您在 TreeView 中指定 SelectedItemSelectedValueSelectedItem 代表 Items 集合中的物件,而 TreeView 會顯示所選取項目的單一屬性值。 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>

下列範例定義了顯示 EmployeeEmployeeNameEmployeeWorkDayHierarchicalDataTemplate。 請注意,HierarchicalDataTemplate 不會將 EmployeeNumber 指定為範本的一部分。

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

下列範例顯示使用先前定義的 HierarchicalDataTemplate,並將 SelectedValue 屬性設定為 EmployeeNumberTreeView。 當您在 TreeView 中選取 EmployeeName 時,SelectedItem 屬性會傳回對應至所選 EmployeeNameEmployeeInfo 資料項目。 不過,由於這個 TreeViewSelectedValuePath 設定為 EmployeeNumber,因此 SelectedValue 會設定為 EmployeeNumber

<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"/>

另請參閱