Procédure : Utiliser le modèle maître/détail avec des données XML hiérarchiquesHow to: Use the Master-Detail Pattern with Hierarchical XML Data

Cet exemple montre comment implémenter le scénario maître / détail avec XMLXML données.This example shows how to implement the master-detail scenario with XMLXML data.

ExempleExample

Cet exemple est la XMLXML version des données de l’exemple abordé dans utiliser le modèle maître / détail avec des données hiérarchiques.This example is the XMLXML data version of the example discussed in Use the Master-Detail Pattern with Hierarchical Data. Dans cet exemple, les données sont à partir du fichier League.xml.In this example, the data is from the file League.xml. Notez comment le troisième ListBox contrôle effectue le suivi des modifications de sélection dans la seconde ListBox en le liant à son SelectedValue propriété.Note how the third ListBox control tracks selection changes in the second ListBox by binding to its SelectedValue property.

<Window x:Class="SDKSample.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://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>

Voir aussiSee also