Gewusst wie: Verwenden des Master/Detail-Musters mit hierarchischen Daten
Aktualisiert: November 2007
In diesem Beispiel wird gezeigt, wie das Master/Detail-Szenario implementiert wird.
Beispiel
In diesem Beispiel steht LeagueList für eine Auflistung von Leagues. Jede League verfügt über einen Name und eine Auflistung von Divisions, und jede Division verfügt über einen Namen und eine Auflistung von Teams. Jedes Team besitzt einen Teamnamen.
<Window
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://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>
Im Folgenden finden Sie eine Bildschirmaufnahme des Beispiels. Das Divisions-ListBox verfolgt automatisch die Auswahlmöglichkeiten im Leagues-ListBox und zeigt die entsprechenden Daten an. Das Teams-ListBox verfolgt die Auswahlmöglichkeiten in den anderen zwei ListBox-Steuerelementen.
Folgende zwei Sachen sind in diesem Beispiel zu beachten:
Die drei ListBox-Steuerelemente werden an dieselbe Quelle gebunden. Sie legen die Path-Eigenschaft der Bindung fest, um anzugeben, welche Datenebene das ListBox anzeigen soll.
Sie müssen die IsSynchronizedWithCurrentItem-Eigenschaft für die ListBox-Steuerelemente, deren Auswahl Sie verfolgen, auf true festlegen. Durch Festlegen dieser Eigenschaft wird sichergestellt, dass das ausgewählte Element immer als CurrentItem festgelegt wird. Wenn hingegen das ListBox die Daten von CollectionViewSource abruft, werden Auswahl und Währung automatisch synchronisiert.
Das vollständige Beispiel finden Sie unter Beispiel zu einem Master/Detail-Szenario mit ObjectDataProvider. Die Vorgehensweise unterscheidet sich etwas, wenn Sie XML-Daten verwenden. Ein Beispiel finden Sie unter Gewusst wie: Verwenden des Master/Detail-Musters mit hierarchischen XML-Daten.
Siehe auch
Aufgaben
Gewusst wie: Binden an eine Auflistung und Anzeigen von Informationen auf Grundlage der Auswahl