Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Procedura: utilizzare il modello Master-Details con dati gerarchici

In questo esempio viene illustrato come implementare lo scenario Master-Details.

In questo esempio, LeagueList è una raccolta di Leagues. Ogni League ha un Name e una raccolta di Divisions e ciascuna Division ha un nome e una raccolta di Teams. Ogni Team ha un nome.


<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:src="clr-namespace:SDKSample"
  Width="400" Height="180"
  Title="Master-Detail Binding" 
  Background="Silver">
  <Window.Resources>
    <src:LeagueList x:Key="MyList"/>


...


  <DockPanel DataContext="{Binding Source={StaticResource MyList}}">
    <StackPanel>
      <Label>My Soccer Leagues</Label>
      <ListBox ItemsSource="{Binding}" DisplayMemberPath="Name"
               IsSynchronizedWithCurrentItem="true"/>
    </StackPanel>

    <StackPanel>
      <Label Content="{Binding Path=Name}"/>
      <ListBox ItemsSource="{Binding Path=Divisions}" DisplayMemberPath="Name"
               IsSynchronizedWithCurrentItem="true"/>
    </StackPanel>

    <StackPanel>
      <Label Content="{Binding Path=Divisions/Name}"/>
      <ListBox DisplayMemberPath="Name" ItemsSource="{Binding Path=Divisions/Teams}"/>
    </StackPanel>
  </DockPanel>
</Window>


Di seguito è disponibile una schermata dell'esempio. Il controllo ListBox Divisions consente di rilevare automaticamente le selezioni nel controllo ListBox Leagues e di visualizzare i dati corrispondenti. Il controllo ListBoxTeams consente di rilevare le selezioni negli altri due controlli ListBox.

Esempio Master Detail Data

Si notino i due aspetti dell'esempio riportati di seguito:

  1. I tre controlli ListBox sono associati alla stessa origine. La proprietà Path è dell'associazione viene impostata per specificare quale livello di dati deve essere visualizzato dal controllo ListBox.

  2. È necessario impostare la proprietà IsSynchronizedWithCurrentItem su true sui controlli ListBox di cui si intende rilevare le selezioni. L'impostazione di questa proprietà assicura che l'elemento selezionato sia sempre impostato come CurrentItem. In alternativa, se ListBox ottiene i dati da un oggetto CollectionViewSource, la selezione e la valuta vengono sincronizzate automaticamente.

La tecnica varia leggermente se si utilizzano dati XML. Per un esempio, vedere Procedura: utilizzare il modello Master-Details con dati XML gerarchici.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft