Cómo: Usar SelectedValue, SelectedValuePath y SelectedItem
En este ejemplo se muestra cómo usar las propiedades SelectedValue y SelectedValuePath para especificar un valor para el SelectedItem de un objeto TreeView.
Ejemplo
La propiedad SelectedValuePath proporciona una manera de especificar un SelectedValue para el SelectedItem en un TreeView. El SelectedItem representa un objeto de la colección Items y TreeView muestra el valor de una sola propiedad del elemento seleccionado. La propiedad SelectedValuePath especifica la ruta de acceso a la propiedad que se usa para determinar el valor de la propiedad SelectedValue. Los ejemplos de este tema ilustran este concepto.
En el ejemplo siguiente se muestra un objeto XmlDataProvider que contiene información de empleado.
<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>
En el ejemplo siguiente se define un objeto HierarchicalDataTemplate que muestra el EmployeeName
y el EmployeeWorkDay
del Employee
. Tenga en cuenta que HierarchicalDataTemplate no especifica EmployeeNumber
como parte de la plantilla.
<HierarchicalDataTemplate x:Key="SampleTemplate" DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=EmployeeWorkDay}">
<TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>
En el ejemplo siguiente se muestra un objeto TreeView que usa el HierarchicalDataTemplate definido previamente y que establece la propiedad SelectedValue en EmployeeNumber
. Al seleccionar un EmployeeName
en el TreeView, la propiedad SelectedItem devuelve el elemento de datos EmployeeInfo
que corresponde al EmployeeName
seleccionado. Sin embargo, dado que el valor SelectedValuePath de este TreeView se establece en EmployeeNumber
, se establece SelectedValue en 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"/>
Vea también
.NET Desktop feedback