Procedura: utilizzare il modello Master-Details con dati gerarchici
Questo esempio illustra come implementare lo scenario master-detail.
Esempio
In questo esempio è LeagueList
una raccolta di Leagues
. Ogni League
oggetto ha un Name
insieme e di Divisions
e e ognuno Division
ha un nome e una raccolta di Teams
. Ognuno Team
ha un nome di team.
<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>
Lo screenshot seguente mostra l'esempio. L'oggetto Divisions
ListBox tiene traccia automaticamente delle selezioni nell'oggetto Leagues
ListBox e visualizza i dati corrispondenti. Tiene Teams
ListBox traccia delle selezioni negli altri due ListBox controlli.
I due aspetti da notare in questo esempio sono:
I tre ListBox controlli vengono associati alla stessa origine. Impostare la Path proprietà dell'associazione per specificare il livello di dati ListBox da visualizzare.
È necessario impostare la IsSynchronizedWithCurrentItem proprietà su
true
sui ListBox controlli di cui si esegue il rilevamento della selezione. L'impostazione di questa proprietà garantisce che l'elemento selezionato sia sempre impostato come CurrentItem. In alternativa, se ottiene ListBox i dati da un CollectionViewSourceoggetto , sincronizza automaticamente la selezione e la valuta.
La tecnica è leggermente diversa quando si usano dati XML. Per un esempio, vedere Usare il modello master-dettagli con dati XML gerarchici.
Vedi anche
.NET Desktop feedback