此範例顯示如何使用 SelectedValue 和 SelectedValuePath 屬性來指定 TreeView 的 SelectedItem 值。
範例
SelectedValuePath 屬性能讓您在 TreeView 中指定 SelectedItem 的 SelectedValue。 SelectedItem 代表 Items 集合中的物件,而 TreeView 會顯示所選取項目的單一屬性值。 SelectedValuePath 屬性會指定用來判斷 SelectedValue 屬性值的屬性路徑。 本主題中的範例就是說明此概念。
下列範例顯示包含員工資訊的 XmlDataProvider。
<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>
下列範例定義了顯示 Employee 的 EmployeeName 和 EmployeeWorkDay 的 HierarchicalDataTemplate。 請注意,HierarchicalDataTemplate 不會將 EmployeeNumber 指定為範本的一部分。
<HierarchicalDataTemplate x:Key="SampleTemplate" DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=EmployeeWorkDay}">
<TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>
下列範例顯示使用先前定義的 HierarchicalDataTemplate,並將 SelectedValue 屬性設定為 EmployeeNumber 的 TreeView。 當您在 TreeView 中選取 EmployeeName 時,SelectedItem 屬性會傳回對應至所選 EmployeeName 的 EmployeeInfo 資料項目。 不過,由於這個 TreeView 的 SelectedValuePath 設定為 EmployeeNumber,因此 SelectedValue 會設定為 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"/>