Comment : utiliser le modèle maître/détail avec des données hiérarchiques
Cet exemple montre comment implémenter le scénario maître-détail.
Exemple
Dans cet exemple, LeagueList
est une collection de Leagues
. Chacun League
a une Name
collection et une collection de Divisions
, et chacun Division
a un nom et une collection de Teams
. Chacun Team
a un nom d’équipe.
<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>
Voici une capture d’écran de l’exemple. Le Divisions
ListBox suivi automatique des sélections dans le fichier et l’affichage Leagues
ListBox des données correspondantes. Le Teams
ListBox suivi des sélections dans les deux ListBox autres contrôles.
Les deux éléments à remarquer dans cet exemple sont les suivants :
Les trois ListBox contrôles sont liés à la même source. Vous définissez la Path propriété de la liaison pour spécifier le ListBox niveau de données à afficher.
Vous devez définir la IsSynchronizedWithCurrentItem propriété
true
sur les ListBox contrôles dont vous effectuez le suivi. La définition de cette propriété garantit que l’élément sélectionné est toujours défini en tant que CurrentItem. Sinon, si les ListBox données sont extraites d’un CollectionViewSource, elles synchronisent automatiquement la sélection et la devise.
La technique est légèrement différente lorsque vous utilisez des données XML. Pour obtenir un exemple, consultez Utiliser le modèle maître-détail avec des données XML hiérarchiques.
Voir aussi
.NET Desktop feedback