Bagikan melalui


Cara: Menggunakan Pola Detail Master dengan Data Hierarkis

Contoh ini menunjukkan cara mengimplementasikan skenario detail master.

Contoh

Dalam contoh ini, LeagueList adalah kumpulan Leagues. Masing-masing League memiliki dan koleksi Divisions, dan masing-masing Division memiliki nama dan koleksi TeamsName . Masing-masing Team memiliki nama tim.

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

Berikut ini adalah cuplikan layar contoh. Secara DivisionsListBox otomatis melacak pilihan dalam LeaguesListBox dan menampilkan data yang sesuai. Melacak TeamsListBox pilihan di dua ListBox kontrol lainnya.

Screenshot that shows a Master-detail scenario example.

Dua hal yang perlu diperhatikan dalam contoh ini adalah:

  1. Ketiga ListBox kontrol mengikat ke sumber yang sama. Anda mengatur Path properti pengikatan untuk menentukan tingkat data mana yang ListBox ingin Anda tampilkan.

  2. Anda harus mengatur IsSynchronizedWithCurrentItem properti ke trueListBox pada kontrol di mana pilihan yang Anda lacak. Mengatur properti ini memastikan bahwa item yang dipilih selalu diatur sebagai CurrentItem. Atau, jika ListBox mendapatkannya data dari CollectionViewSource, ia menyinkronkan pilihan dan mata uang secara otomatis.

Teknik ini sedikit berbeda saat Anda menggunakan data XML. Misalnya, lihat Menggunakan Pola Detail Master dengan Data XML Hierarkis.

Baca juga