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 EmployeeName
selecionado. 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
.NET Desktop feedback