Инструкция по Использованию SelectedValue, SelectedValuePath и SelectedItem
Обновлен: Ноябрь 2007
В этом примере показано, как использовать свойства SelectedValue и SelectedValuePath для указания значения для SelectedItem элемента TreeView.
Пример
Свойство SelectedValuePath предоставляет возможность указать SelectedValue для SelectedItem элемента TreeView. SelectedItem представляет объект в коллекции Items и TreeView отображает значение одного свойства выбранного элемента. Свойство SelectedValuePath указывает путь к свойству, используемому для определения значения свойства SelectedValue. В примерах этого раздела показана эта концепция.
Следующий пример демонстрирует XmlDataProvider, содержащий сведения о сотруднике.
<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>
В следующем примере определяется HierarchicalDataTemplate, отображающий EmployeeName и EmployeeWorkDay из Employee. Обратите внимание, что HierarchicalDataTemplate не указывает EmployeeNumber в качестве части шаблона.
<HierarchicalDataTemplate DataType="EmployeeInfo"
ItemsSource ="{Binding XPath=EmployeeWorkDay}">
<TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>
Следующий пример демонстрирует TreeView, использующий ранее определенный HierarchicalDataTemplate, и устанавливает свойство SelectedValue для EmployeeNumber. Когда выбирается EmployeeName в TreeView, свойство SelectedItem возвращает элемент данных EmployeeInfo, соответствующий выбранному EmployeeName. Однако, так как SelectedValuePath из этого TreeView устанавливает значение в EmployeeNumber, SelectedValue устанавливает значение в 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"/>
Полный пример см. в разделе Пример использования объекта TreeView, определяющего свойство SelectedValuePath.
См. также
Основные понятия
Обзор элемента управления "TreeView"
Ссылки
Другие ресурсы
Разделы руководства, посвященные элементу управления TreeView