Vorgehensweise: Verwenden des Master-/Detailmusters mit hierarchischen DatenHow to: Use the Master-Detail Pattern with Hierarchical Data

Dieses Beispiel zeigt, wie Sie das Master / Detail-Szenario zu implementieren.This example shows how to implement the master-detail scenario.

BeispielExample

In diesem Beispiel LeagueList ist eine Sammlung von Leagues.In this example, LeagueList is a collection of Leagues. Jede League verfügt über eine Name und eine Sammlung von Divisions, und jede Division hat einen Namen und eine Auflistung von Teams.Each League has a Name and a collection of Divisions, and each Division has a name and a collection of Teams. Jede Team verfügt über ein Teamname.Each Team has a team name.

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

Im Folgenden finden Sie ein Bildschirmfoto des Beispiels.The following is a screenshot of the example. Die Divisions ListBox verfolgt automatisch die Auswahlmöglichkeiten in den Leagues ListBox und die entsprechenden Daten anzuzeigen.The Divisions ListBox automatically tracks selections in the Leagues ListBox and display the corresponding data. Die Teams ListBox verfolgt die Auswahlmöglichkeiten in den anderen beiden ListBox Steuerelemente.The Teams ListBox tracks selections in the other two ListBox controls.

Screenshot mit einem Masterauftrag für den-Beispiel für Detail-Szenario.

Die beiden in diesem Beispiel sind zu beachten:The two things to notice in this example are:

  1. Die drei ListBox Steuerelemente an dieselbe Quelle binden.The three ListBox controls bind to the same source. Festlegen der Path -Eigenschaft der Bindung angeben, welche Ebene der Daten sollen die ListBox angezeigt.You set the Path property of the binding to specify which level of data you want the ListBox to display.

  2. Müssen Sie festlegen, die IsSynchronizedWithCurrentItem Eigenschaft true auf die ListBox Steuerelemente, von denen die Auswahl, die Sie verfolgen.You must set the IsSynchronizedWithCurrentItem property to true on the ListBox controls of which the selection you are tracking. Durch Festlegen dieser Eigenschaft wird sichergestellt, dass das ausgewählte Element immer, als festgelegt ist die CurrentItem.Setting this property ensures that the selected item is always set as the CurrentItem. Auch wenn die ListBox ruft es die Daten aus einer CollectionViewSource, diese Auswahl und Aktualität wird automatisch synchronisiert.Alternatively, if the ListBox gets it data from a CollectionViewSource, it synchronizes selection and currency automatically.

Das Verfahren unterscheidet sich geringfügig bei Verwendung von XMLXML Daten.The technique is slightly different when you are using XMLXML data. Ein Beispiel finden Sie unter verwenden Sie die Master-/ Detailmusters mit hierarchischen XML-Daten.For an example, see Use the Master-Detail Pattern with Hierarchical XML Data.

Siehe auchSee also