Compartilhar via


Como usar SelectedValue, SelectedValuePath e SelectedItem

Este exemplo mostra como usar as propriedades SelectedValue e SelectedValuePath para especificar um valor para o SelectedItem de um TreeView.

Exemplo

A propriedade SelectedValuePath fornece uma maneira de especificar um SelectedValue para o SelectedItem em um TreeView. O SelectedItem representa um objeto na coleção Items e o TreeView exibe o valor de uma única propriedade do item selecionado. A propriedade SelectedValuePath especifica o caminho para a propriedade que é usada para determinar o valor da propriedade SelectedValue. Os exemplos neste tópico ilustram esse conceito.

O exemplo a seguir mostra um XmlDataProvider que contém informações de funcionários.

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

O exemplo a seguir define um HierarchicalDataTemplate que exibe o EmployeeName e o EmployeeWorkDay do Employee. Observe que o HierarchicalDataTemplate não especifica o EmployeeNumber como parte do modelo.

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

O exemplo a seguir mostra um TreeView que usa o HierarchicalDataTemplate definido anteriormente e que define a propriedade SelectedValue para o EmployeeNumber. Quando você seleciona um EmployeeName no TreeView, a propriedade SelectedItem retorna o item de dados EmployeeInfo que corresponde ao EmployeeNameselecionado. No entanto, como o SelectedValuePath desse TreeView está definido como EmployeeNumber, o SelectedValue é definido como o 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"/>

Consulte também