Partager via


Guide pratique pour utiliser SelectedValue, SelectedValuePath et SelectedItem

Cet exemple montre comment utiliser les propriétés SelectedValue et SelectedValuePath pour spécifier une valeur pour la SelectedItem d’un TreeView.

Exemple

La propriété SelectedValuePath permet de spécifier une SelectedValue pour la SelectedItem dans un TreeView. Le SelectedItem représente un objet dans la collection Items et le TreeView affiche la valeur d’une propriété unique de l’élément sélectionné. La propriété SelectedValuePath spécifie le chemin d’accès à la propriété utilisée pour déterminer la valeur de la propriété SelectedValue. Les exemples de cette rubrique illustrent ce concept.

L’exemple suivant montre un XmlDataProvider qui contient des informations sur les employés.

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

L’exemple suivant définit un HierarchicalDataTemplate qui affiche les EmployeeName et les EmployeeWorkDay du Employee. Notez que le HierarchicalDataTemplate ne spécifie pas la EmployeeNumber dans le cadre du modèle.

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

L’exemple suivant montre un TreeView qui utilise la HierarchicalDataTemplate définie précédemment et qui définit la propriété SelectedValue sur l'EmployeeNumber. Lorsque vous sélectionnez un EmployeeName dans le TreeView, la propriété SelectedItem retourne l’élément de données EmployeeInfo qui correspond au EmployeeNamesélectionné. Toutefois, étant donné que la SelectedValuePath de cette TreeView est définie sur EmployeeNumber, la SelectedValue est définie sur la 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"/>

Voir aussi