Procedura: utilizzare le proprietà SelectedValue, SelectedValuePath e SelectedItem

In questo esempio viene illustrato come utilizzare le SelectedValue proprietà e SelectedValuePath per specificare un valore per l'oggetto SelectedItem di un oggetto TreeView.

Esempio

La SelectedValuePath proprietà consente di specificare un SelectedValue oggetto per in SelectedItem un oggetto TreeView. Rappresenta SelectedItem un oggetto nell'insieme Items e TreeView visualizza il valore di una singola proprietà dell'elemento selezionato. La SelectedValuePath proprietà specifica il percorso della proprietà utilizzata per determinare il valore della SelectedValue proprietà . Gli esempi in questo argomento illustrano questo concetto.

Nell'esempio seguente viene illustrato un oggetto XmlDataProvider che contiene informazioni sui dipendenti.

<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>

Nell'esempio seguente viene definito un oggetto HierarchicalDataTemplate che visualizza e EmployeeNameEmployeeWorkDay di Employee. Si noti che HierarchicalDataTemplate non specifica come EmployeeNumber parte del modello.

<HierarchicalDataTemplate x:Key="SampleTemplate" DataType="EmployeeInfo" 
  ItemsSource ="{Binding XPath=EmployeeWorkDay}">
  <TextBlock Text="{Binding XPath=EmployeeName}" />
</HierarchicalDataTemplate>

Nell'esempio seguente viene illustrato un TreeView oggetto che usa l'oggetto definito HierarchicalDataTemplate in precedenza e che imposta la SelectedValue proprietà su EmployeeNumber. Quando si seleziona un oggetto EmployeeName in TreeView, la SelectedItem proprietà restituisce l'elemento EmployeeInfo di dati corrispondente all'oggetto selezionato EmployeeName. Tuttavia, poiché l'oggetto di è impostato su EmployeeNumber, l'oggetto SelectedValueSelectedValuePath è impostato su EmployeeNumber.TreeView

<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"/>

Vedi anche