Partager via


Comment : utiliser le modèle maître/détail avec des données XML hiérarchiques

Mise à jour : novembre 2007

Cet exemple indique comment implémenter le scénario maître/détail avec des données XML.

Exemple

Cet exemple correspond à la version des données XML de l'exemple décrit dans Comment : utiliser le modèle maître/détail avec des données hiérarchiques. Dans cet exemple, les données proviennent du fichier League.xml. Notez comment le troisième contrôle ListBox suit les modifications de sélection dans le second ListBox en se liant à sa propriété SelectedValue.

<Window x:Class="SDKSample.Window1"
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  Title="Multiple ListBox Binding Sample"
  Width="400" Height="200"
  Background="Cornsilk">
    <Window.Resources>
      <XmlDataProvider x:Key="MyList" Source="Data\Leagues.xml"
                       XPath="Leagues/League"/>
      <DataTemplate x:Key="dataTemplate">
        <TextBlock Text="{Binding XPath=@name}" />
      </DataTemplate>


...


    </Window.Resources>

    <DockPanel DataContext="{Binding Source={StaticResource MyList}}">
      <StackPanel>
        <Label>My Soccer Leagues</Label>
        <ListBox ItemsSource="{Binding}"
                 ItemTemplate="{StaticResource dataTemplate}"
                 IsSynchronizedWithCurrentItem="true"/>
      </StackPanel>

      <StackPanel>
        <Label Content="{Binding XPath=@name}"/>
        <ListBox Name="divisionsListBox"
                 ItemsSource="{Binding XPath=Division}"
                 ItemTemplate="{StaticResource dataTemplate}"
                 IsSynchronizedWithCurrentItem="true"/>
      </StackPanel>

      <StackPanel>
        <Label Content="{Binding XPath=@name}"/>
        <ListBox DataContext="{Binding ElementName=divisionsListBox,
                                       Path=SelectedItem}"
                 ItemsSource="{Binding XPath=Team}"
                 ItemTemplate="{StaticResource dataTemplate}"/>
      </StackPanel>
    </DockPanel>
</Window>

Pour afficher l'exemple complet, consultez Scénario maître/détail utilisant XmlDataProvider, exemple.

Voir aussi

Référence

HierarchicalDataTemplate

Autres ressources

Exemples de liaisons de données

Rubriques Comment relatives aux liaisons de données