Gewusst wie: Verwendung von SelectedValue, SelectedValuePath und SelectedItem
In diesem Beispiel wird dargestellt, wie die SelectedValue-Eigenschaft und die SelectedValuePath-Eigenschaft verwendet werden, um einen Wert für das SelectedItem einer TreeView anzugeben.
Beispiel
Die SelectedValuePath-Eigenschaft bietet eine Möglichkeit, einen SelectedValue für das SelectedItem in einer TreeView anzugeben. Das SelectedItem stellt ein Objekt in der Items-Auflistung dar, und die TreeView zeigt den Wert einer einzelnen Eigenschaft des ausgewählten Elements an. Die SelectedValuePath-Eigenschaft gibt den Pfad zu der Eigenschaft an, mit der der Wert der SelectedValue-Eigenschaft bestimmt wird. In den Beispielen dieses Themas wird dieses Konzept veranschaulicht.
Im folgenden Beispiel wird ein XmlDataProvider gezeigt, der Mitarbeiterinformationen enthält.
<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>
Im folgenden Beispiel wird eine HierarchicalDataTemplate definiert, die EmployeeName und EmployeeWorkDay für den Employee anzeigt. Beachten Sie, dass die HierarchicalDataTemplate die EmployeeNumber nicht als Teil der Vorlage angibt.
<HierarchicalDataTemplate DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=EmployeeWorkDay}">
<TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>
Im folgenden Beispiel wird eine TreeView dargestellt, die die zuvor definierte HierarchicalDataTemplate verwendet und die SelectedValue-Eigenschaft für die EmployeeNumber festlegt. Wenn Sie ein EmployeeName-Element in der TreeView auswählen, gibt die SelectedItem-Eigenschaft das EmployeeInfo-Datenelement zurück, das dem ausgewählten EmployeeName-Element entspricht. Da allerdings der SelectedValuePath dieser TreeView auf die EmployeeNumber festgelegt wird, wird der SelectedValue auf die EmployeeNumber festgelegt.
<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"/>