Condividi tramite


Come utilizzare SelectedValue, SelectedValuePath e SelectedItem

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

Esempio

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

Nell'esempio seguente viene illustrato un 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 definita una HierarchicalDataTemplate che visualizza le EmployeeName e le EmployeeWorkDay del Employee. Si noti che il HierarchicalDataTemplate non specifica il EmployeeNumber come parte del modello.

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

Nell'esempio seguente viene mostrato un TreeView che utilizza il HierarchicalDataTemplate definito in precedenza e imposta la proprietà SelectedValue su EmployeeNumber. Quando si seleziona un EmployeeName nella TreeView, la proprietà SelectedItem restituisce l'elemento di dati EmployeeInfo corrispondente al EmployeeNameselezionato. Tuttavia, poiché il SelectedValuePath di questo TreeView è impostato su EmployeeNumber, l'SelectedValue viene impostato sul 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"/>

Vedere anche