Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperkenalkan fitur pengikatan data dinamis di namespace System.Xml.Linq. Fitur-fitur ini dapat digunakan sebagai sumber data untuk elemen antarmuka pengguna (UI) di aplikasi Windows Presentation Foundation (WPF). Skenario ini bergantung pada properti khusus dinamis dariSystem.Xml.Linq.XAttribute dan System.Xml.Linq.XElement.
XAML dan LINQ ke XML
Extensible Application Markup Language (XAML) adalah dialek XML yang dibuat oleh Microsoft untuk mendukung teknologi .NET. Ini digunakan dalam WPF untuk mewakili elemen antarmuka pengguna dan fitur terkait, seperti peristiwa dan pengikatan data. Di Windows Workflow Foundation, XAML digunakan untuk mewakili struktur program, seperti kontrol program (alur kerja). XAML memungkinkan aspek deklaratif teknologi dipisahkan dari kode prosedural terkait yang mendefinisikan perilaku program yang lebih individual.
Ada dua cara luas agar XAML dan LINQ ke XML dapat berinteraksi:
Karena file XAML adalah XML yang terbentuk dengan baik, file tersebut dapat dikueri dan dimanipulasi melalui teknologi XML seperti LINQ ke XML.
Karena kueri LINQ ke XML mewakili sumber data, kueri ini dapat digunakan sebagai sumber data untuk pengikatan data untuk elemen UI WPF.
Dokumentasi ini menjelaskan skenario kedua.
Pengikatan data di Windows Presentation Foundation
Pengikatan data WPF memungkinkan elemen UI untuk mengaitkan salah satu propertinya dengan sumber data. Contoh sederhana dari ini adalah Label yang teksnya menyajikan nilai properti publik dalam objek yang ditentukan pengguna. Pengikatan data WPF bergantung pada komponen berikut:
| Komponen | Deskripsi |
|---|---|
| Sasaran pengikatan | Elemen UI yang akan dikaitkan dengan sumber data. Elemen visual dalam WPF berasal dari kelas UIElement. |
| Properti target | Properti dependensi dari target pengikatan yang mencerminkan nilai dari sumber pengikatan data. Properti dependensi didukung langsung oleh kelas DependencyObject, dari mana UIElement berasal. |
| Sumber pengikatan | Objek sumber untuk satu atau beberapa nilai yang disediakan ke elemen UI untuk presentasi. WPF secara otomatis mendukung jenis berikut sebagai sumber pengikatan: objek CLR, ADO.NET objek data, data XML (dari XPath atau LINQ ke kueri XML), atau DependencyObjectlainnya. |
| Jalur sumber | Properti sumber pengikatan yang diselesaikan ke nilai atau kumpulan nilai yang akan terikat. |
Properti dependensi adalah konsep khusus untuk WPF yang mewakili properti komputasi dinamis dari elemen UI. Misalnya, properti dependensi sering memiliki nilai atau nilai default yang disediakan oleh elemen induk. Properti khusus ini dijalankan oleh instance kelas DependencyProperty (dan bukan field seperti properti standar). Untuk informasi selengkapnya, lihat Gambaran Umum Properti Dependensi .
Pengikatan data dinamis di WPF
Secara default, pengikatan data hanya terjadi ketika elemen UI target diinisialisasi. Ini disebut pengikatan satu kali. Untuk sebagian besar tujuan, ini tidak cukup; biasanya, solusi pengikatan data mengharuskan perubahan disebarkan secara dinamis pada run time menggunakan salah satu hal berikut:
Pengikatan satu arah menyebabkan perubahan pada satu sisi disebarluaskan secara otomatis. Paling umum, perubahan pada sumber tercermin dalam target, tetapi sebaliknya terkadang dapat berguna.
Dalam pengikatan dua arah, perubahan pada sumber secara otomatis disebarkan ke target, dan perubahan pada target secara otomatis disebarluaskan ke sumber.
Agar pengikatan satu atau dua arah terjadi, sumber harus menerapkan mekanisme pemberitahuan perubahan, misalnya dengan menerapkan antarmuka INotifyPropertyChanged atau dengan menggunakan pola PropertyNameChanged untuk setiap properti yang didukung.
Untuk informasi selengkapnya tentang pengikatan data di WPF, lihat Pengikatan Data (WPF).
Properti dinamis di kelas LINQ ke XML
Sebagian besar kelas LINQ ke XML tidak memenuhi syarat sebagai sumber data dinamis WPF yang tepat. Beberapa informasi yang paling berguna hanya tersedia melalui metode, bukan properti, dan properti di kelas ini tidak menerapkan pemberitahuan perubahan. Untuk mendukung pengikatan data WPF, LINQ ke XML mengekspos sekumpulan properti dinamis .
Properti dinamis ini adalah properti run-time khusus yang menduplikasi fungsionalitas metode dan properti yang ada di kelas XAttribute dan XElement. Mereka ditambahkan ke kelas-kelas ini hanya untuk memungkinkan mereka bertindak sebagai sumber data dinamis untuk WPF. Untuk memenuhi kebutuhan ini, semua properti dinamis ini menerapkan pemberitahuan perubahan. Referensi terperinci untuk properti dinamis ini disediakan di bagian berikutnya, LINQ ke Properti Dinamis XML.
Nota
Banyak properti publik standar, yang ditemukan di berbagai kelas di namespace System.Xml.Linq, dapat digunakan untuk pengikatan data satu kali. Namun, ingat bahwa baik sumber maupun target tidak akan diperbarui secara dinamis di bawah skema ini.
Mengakses properti dinamis
Properti dinamis di kelas XAttribute dan XElement tidak dapat diakses seperti properti standar. Misalnya, dalam bahasa yang mematuhi CLR seperti C#, bahasa tersebut tidak boleh:
Diakses langsung pada waktu kompilasi. Properti dinamis tidak terlihat oleh pengkompilasi dan ke Visual Studio IntelliSense.
Ditemukan atau diakses pada waktu berjalan menggunakan refleksi .NET. Bahkan saat runtime, mereka bukan properti dalam arti dasar CLR.
Di C#, properti dinamis hanya dapat diakses pada waktu proses melalui fasilitas yang disediakan oleh namespace System.ComponentModel.
Namun, sebaliknya, dalam properti dinamis sumber XML dapat diakses melalui notasi langsung dalam bentuk berikut:
<object>.<dynamic-property>
Properti dinamis untuk kedua kelas ini menentukan nilai yang dapat digunakan secara langsung, atau ke pengindeks yang harus disediakan dengan indeks untuk mendapatkan nilai atau kumpulan nilai yang dihasilkan. Sintaks yang terakhir berbentuk:
<object>.<dynamic-property>[<index-value>]
Untuk informasi selengkapnya, lihat LINQ untuk Properti Dinamis XML.
Untuk menerapkan pengikatan dinamis WPF, properti dinamis akan digunakan dengan fasilitas yang disediakan oleh namespace System.Windows.Data, terutama kelas Binding.
Lihat juga
.NET Desktop feedback