Comment : utiliser SelectedValue, SelectedValuePath et SelectedItem
Mise à jour : novembre 2007
Cet exemple indique comment utiliser les SelectedValue et les propriétés SelectedValuePath pour spécifier une valeur pour le SelectedItem d'un TreeView.
Exemple
La propriété SelectedValuePath fournit un moyen d'indiquer un SelectedValue pour le 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 de 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 affiche un XmlDataProvider qui contient des informations sur l'employé.
<XmlDataProvider x:Key="myEmployeeData" XPath="/EmployeeData">
<x:XData>
<EmployeeData >
<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 le EmployeeName et EmployeeWorkDay de Employee. Notez que le HierarchicalDataTemplate ne spécifie pas le EmployeeNumber dans le cadre du modèle.
<HierarchicalDataTemplate DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=EmployeeWorkDay}">
<TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>
L'exemple suivant affiche un TreeView qui utilise le HierarchicalDataTemplate défini précédemment et qui définit la propriété SelectedValue sur le EmployeeNumber. Lorsque vous sélectionnez un EmployeeName dans le TreeView, la propriété SelectedItem retourne l'élément de données de EmployeeInfo qui correspond au EmployeeName sélectionné. Toutefois, étant donné que SelectedValuePath de ce TreeView a la valeur EmployeeNumber, SelectedValue a la valeur EmployeeNumber.
<TreeView ItemsSource="{Binding Source={StaticResource myEmployeeData},
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"/>
Pour l'exemple complet, consultez TreeView spécifiant SelectedValuePath, exemple.