Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 suit automatiquement les sélections dans le Leagues
ListBox et affiche les données correspondantes. Le Teams
ListBox suit les sélections dans les deux autres contrôles ListBox.
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 niveau de données que vous souhaitez que le ListBox affiche.
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 comme CurrentItem. Sinon, si la ListBox obtient ses données d’un CollectionViewSource, il synchronise 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 Master-Detail avec des données XML hiérarchiques.
Voir aussi
.NET Desktop feedback