Bagikan melalui


Cara: Mengikat ke Hasil Kueri LINQ

Contoh ini menunjukkan cara menjalankan kueri LINQ lalu mengikat hasilnya.

Contoh

Contoh berikut membuat dua kotak daftar. Kotak daftar pertama berisi tiga item daftar.

<ListBox SelectionChanged="ListBox_SelectionChanged"
         SelectedIndex="0" Margin="10,0,10,0" >
    <ListBoxItem>1</ListBoxItem>
    <ListBoxItem>2</ListBoxItem>
    <ListBoxItem>3</ListBoxItem>
</ListBox>
<ListBox Width="400" Margin="10" Name="myListBox"
         HorizontalContentAlignment="Stretch"
         ItemsSource="{Binding}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Memilih item dari kotak daftar pertama memanggil penanganan aktivitas berikut. Dalam contoh ini, Tasks adalah kumpulan Task objek. Kelas Task memiliki properti bernama Priority. Penanganan aktivitas ini menjalankan kueri LINQ yang mengembalikan kumpulan Task objek yang memiliki nilai prioritas yang dipilih, lalu mengaturnya sebagai DataContext:

using System.Linq;
Tasks tasks = new Tasks();
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int pri = Int32.Parse(((sender as ListBox).SelectedItem as ListBoxItem).Content.ToString());

    this.DataContext = from task in tasks
                       where task.Priority == pri
                       select task;
}

Kotak daftar kedua mengikat ke koleksi tersebut karena nilainya ItemsSource diatur ke {Binding}. Akibatnya, ia menampilkan koleksi yang dikembalikan (berdasarkan myTaskTemplateDataTemplate).

Baca juga