Gambaran umum sumber pengikatan (WPF .NET)

Dalam pengikatan data, objek sumber pengikatan mengacu pada objek tempat Anda mendapatkan data. Artikel ini membahas jenis objek yang dapat Anda gunakan sebagai sumber pengikatan, seperti objek CLR .NET, XML, dan DependencyObject objek.

Jenis sumber pengikatan

Pengikatan data Windows Presentation Foundation (WPF) mendukung jenis sumber pengikatan berikut:

Menerapkan sumber pengikatan pada objek Anda

Objek CLR Anda dapat menjadi sumber pengikatan. Ada beberapa hal yang perlu diperhatikan saat menerapkan kelas untuk berfungsi sebagai sumber pengikatan.

Berikan pemberitahuan perubahan

Jika Anda menggunakan atau OneWayTwoWay mengikat, terapkan mekanisme pemberitahuan "properti berubah" yang sesuai. Mekanisme yang direkomendasikan adalah agar CLR atau kelas dinamis mengimplementasikan INotifyPropertyChanged antarmuka. Untuk informasi selengkapnya, lihat Cara: Menerapkan Pemberitahuan Perubahan Properti (.NET Framework).

Ada dua cara untuk memberi tahu pelanggan tentang perubahan properti:

  1. Implementasikan INotifyPropertyChanged antarmuka.

    Ini adalah mekanisme yang direkomendasikan untuk pemberitahuan. PropertyChanged Menyediakan INotifyPropertyChanged peristiwa, yang dihormati sistem pengikatan. Dengan menaikkan peristiwa ini, dan memberikan nama properti yang berubah, Anda akan memberi tahu target pengikatan perubahan.

  2. Terapkan pola.PropertyChanged

    Setiap properti yang perlu memberi tahu target pengikatan bahwa target tersebut diubah, memiliki peristiwa yang PropertyNameChanged sesuai, di mana PropertyName adalah nama properti . Anda menaikkan acara setiap kali properti berubah.

Jika sumber pengikatan Anda menerapkan salah satu mekanisme pemberitahuan ini, pembaruan target terjadi secara otomatis. Jika karena alasan apa pun sumber pengikatan Anda tidak memberikan pemberitahuan perubahan properti yang tepat, Anda dapat menggunakan UpdateTarget metode untuk memperbarui properti target secara eksplisit.

Karakteristik lain

Daftar berikut ini menyediakan poin penting lainnya yang perlu diperhatikan:

  • Objek data yang berfungsi sebagai sumber pengikatan dapat dideklarasikan dalam XAML sebagai sumber daya, asalkan mereka memiliki konstruktor tanpa parameter. Jika tidak, Anda harus membuat objek data dalam kode dan langsung menetapkannya ke konteks data pohon objek XAML Anda, atau sebagai sumber pengikatan pengikatan.

  • Properti yang Anda gunakan sebagai properti sumber pengikatan harus properti publik kelas Anda. Properti antarmuka yang ditentukan secara eksplisit tidak dapat diakses untuk tujuan pengikatan, juga tidak dapat dilindungi, properti privat, internal, atau virtual yang tidak memiliki implementasi dasar.

  • Anda tidak dapat mengikat ke bidang publik.

  • Jenis properti yang dideklarasikan di kelas Anda adalah jenis yang diteruskan ke pengikatan. Namun, jenis yang pada akhirnya digunakan oleh pengikatan tergantung pada jenis properti target pengikatan, bukan properti sumber pengikatan. Jika ada perbedaan jenis, Anda mungkin ingin menulis pengonversi untuk menangani bagaimana properti kustom Anda awalnya diteruskan ke pengikatan. Untuk informasi selengkapnya, lihat IValueConverter .

Seluruh objek sebagai sumber pengikatan

Anda dapat menggunakan seluruh objek sebagai sumber pengikatan. Tentukan sumber pengikatan dengan menggunakan Source properti atau DataContext , lalu berikan deklarasi pengikatan kosong: {Binding}. Skenario di mana ini berguna termasuk pengikatan ke objek yang berjenis string, pengikatan ke objek dengan beberapa properti yang Anda minati, atau pengikatan ke objek koleksi. Untuk contoh pengikatan ke seluruh objek koleksi, lihat Cara Menggunakan Pola Detail Master dengan Data Hierarkis (.NET Framework).

Anda mungkin perlu menerapkan logika kustom sehingga data bermakna bagi properti target terikat Anda. Logika kustom mungkin dalam bentuk pengonversi kustom atau DataTemplate. Untuk informasi selengkapnya tentang pengonversi, lihat Konversi data. Untuk informasi selengkapnya tentang templat data, lihat Gambaran Umum Templat Data (.NET Framework).

Objek koleksi sebagai sumber pengikatan

Seringkali, objek yang ingin Anda gunakan sebagai sumber pengikatan adalah kumpulan objek kustom. Setiap objek berfungsi sebagai sumber untuk satu instans pengikatan berulang. Misalnya, Anda mungkin memiliki CustomerOrders koleksi yang terdiri dari CustomerOrder objek, di mana aplikasi Anda melakukan iterasi atas koleksi untuk menentukan berapa banyak pesanan yang ada dan data yang terkandung dalam setiap urutan.

Anda dapat menghitung koleksi apa pun yang mengimplementasikan antarmuka IEnumerable. Namun, untuk menyiapkan pengikatan dinamis sehingga penyisipan atau penghapusan dalam koleksi memperbarui antarmuka pengguna secara otomatis, koleksi harus mengimplementasikan antarmuka INotifyCollectionChanged. Antarmuka ini mengekspos peristiwa yang harus dimunculkan setiap kali koleksi yang mendasar berubah.

Kelas ObservableCollection<T> ini adalah implementasi bawaan dari pengumpulan data yang mengekspos INotifyCollectionChanged antarmuka. Objek data individual dalam koleksi harus memenuhi persyaratan yang dijelaskan di bagian sebelumnya. Misalnya, lihat Cara Membuat dan Mengikat ke ObservableCollection (.NET Framework). Sebelum Anda menerapkan koleksi Anda sendiri, pertimbangkan untuk menggunakan ObservableCollection<T> atau salah satu kelas koleksi yang ada, seperti List<T>, , Collection<T>dan BindingList<T>, di antara banyak lainnya.

Saat Anda menentukan koleksi sebagai sumber pengikatan, WPF tidak mengikat langsung ke koleksi. Sebaliknya, WPF benar-benar mengikat tampilan default koleksi. Untuk informasi tentang tampilan default, lihat Menggunakan tampilan default.

Jika Anda memiliki skenario lanjutan dan ingin menerapkan koleksi Anda sendiri, pertimbangkan untuk menggunakan IList antarmuka. Antarmuka ini menyediakan kumpulan objek non-generik yang dapat diakses secara individual oleh indeks, yang dapat meningkatkan performa.

Persyaratan izin dalam pengikatan data

Tidak seperti .NET Framework, .NET berjalan dengan keamanan kepercayaan penuh. Semua pengikatan data berjalan dengan akses yang sama dengan pengguna yang menjalankan aplikasi.

Baca juga