다음을 통해 공유


방법: 계층적 XML 데이터에 마스터-세부 패턴 사용

이 예제에서는 XML 데이터를 사용하여 마스터-세부 시나리오를 구현하는 방법을 보여 줍니다.

예제

이 예제는 방법: 계층적 데이터에 마스터-세부 패턴 사용에서 설명한 예제의 XML 데이터 버전입니다. 이 예제에서는 데이터가 League.xml 파일에 있습니다. 세 번째 ListBox 컨트롤이 두 번째 ListBoxSelectedValue 속성에 바인딩하여 해당 컨트롤에서의 선택 변경을 추적하는 방식을 확인하십시오.

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

참고 항목

참조

HierarchicalDataTemplate

기타 리소스

데이터 바인딩 방법 항목