Mengikat kontrol WPF ke data dalam aplikasi .NET Framework
Catatan
Himpunan data dan kelas terkait adalah teknologi .NET Framework warisan dari awal 2000-an yang memungkinkan aplikasi untuk bekerja dengan data dalam memori saat aplikasi terputus dari database. Himpunan data tersebut sangat berguna untuk aplikasi yang mengaktifkan pengguna guna memodifikasi data dan mempertahankan perubahan kembali ke database. Meskipun himpunan data telah terbukti menjadi teknologi yang sangat sukses, sebaiknya aplikasi .NET baru menggunakan Entity Framework Core. Entity Framework menyediakan cara yang lebih alami untuk bekerja dengan data tabular sebagai model objek, dan memiliki antarmuka pemrograman yang lebih sederhana.
Anda dapat menampilkan data kepada pengguna aplikasi Anda dengan mengikat data ke kontrol WPF. Untuk membuat kontrol terikat data ini, Anda dapat menyeret item dari jendela Sumber Data ke WPF Designer di Visual Studio. Topik ini menjelaskan beberapa tugas, alat, dan kelas yang paling umum yang dapat Anda gunakan untuk membuat aplikasi WPF yang terikat data.
Untuk informasi umum tentang cara membuat kontrol terikat data di Visual Studio, lihat Mengikat kontrol ke data di Visual Studio. Untuk informasi selengkapnya tentang pengikatan data WPF, lihat Gambaran Umum Pengikatan Data.
Tugas yang terlibat dalam pengikatan kontrol WPF ke data
Tabel berikut mencantumkan tugas yang bisa diselesaikan dengan menyeret item dari jendela Sumber Data ke Perancang WPF.
Task | Informasi selengkapnya |
---|---|
Buat kontrol terikat data baru. Ikat kontrol yang ada ke data. |
Mengikat kontrol WPF ke himpunan data |
Buat kontrol yang menampilkan data terkait dalam hubungan induk-turunan: saat pengguna memilih rekaman data induk dalam satu kontrol, kontrol lain menampilkan data turunan terkait untuk rekaman yang dipilih. | Menampilkan data terkait dalam aplikasi WPF |
Buat tabel pencarian yang menampilkan informasi dari satu tabel berdasarkan nilai bidang kunci asing di tabel lain. | Membuat tabel pencarian di aplikasi WPF |
Mengikat kontrol ke gambar dalam database. | Mengikat kontrol ke gambar dari database |
Target penurunan yang valid
Anda dapat menyeret item di jendela Sumber Data hanya ke target drop yang valid di Perancang WPF. Ada dua jenis utama target penurunan yang valid: kontainer dan kontrol. Kontainer adalah elemen antarmuka pengguna yang biasanya berisi kontrol. Misalnya, kisi adalah kontainer, dan begitu juga jendela.
XAML dan kode yang dihasilkan
Saat Anda menyeret item dari jendela Sumber Data ke WPF Designer, Visual Studio menghasilkan XAML yang menentukan kontrol terikat data baru (atau mengikat kontrol yang ada ke sumber data). Untuk beberapa sumber data, Visual Studio juga menghasilkan kode dalam file code-behind yang mengisi sumber data dengan data.
Tabel berikut mencantumkan XAML dan kode yang dihasilkan Visual Studio untuk setiap jenis sumber data di jendela Sumber Data.
Sumber data | Membuat XAML yang mengikat kontrol ke sumber data | Membuat kode yang mengisi sumber data dengan data |
---|---|---|
Dataset | Ya | Ya |
Model Data Entitas | Ya | Ya |
Service | Ya | Tidak |
Objek | Ya | Tidak |
Himpunan data
Saat Anda menyeret tabel atau kolom dari jendela Sumber Data ke perancang, Visual Studio menghasilkan XAML yang melakukan hal berikut:
Menambahkan himpunan data dan baru CollectionViewSource ke sumber daya kontainer tempat Anda menyeret item. CollectionViewSource adalah objek yang dapat digunakan untuk menavigasi dan menampilkan data dalam himpunan data.
Membuat pengikatan data untuk kontrol. Jika Anda menyeret item ke kontrol yang ada di perancang, XAML akan mengikat kontrol ke item. Jika Anda menyeret item ke kontainer, XAML membuat kontrol yang dipilih untuk item yang diseret, dan mengikat kontrol ke item. Kontrol dibuat di dalam baru Grid.
Visual Studio juga membuat perubahan berikut pada file code-behind:
- Loaded Membuat penanganan aktivitas untuk elemen UI yang berisi kontrol. Penanganan aktivitas mengisi tabel dengan data, mengambil CollectionViewSource dari sumber daya kontainer, lalu menjadikan item data pertama sebagai item saat ini. Loaded Jika penanganan aktivitas sudah ada, Visual Studio menambahkan kode ini ke penanganan aktivitas yang ada.
Model data entitas
Saat Anda menyeret entitas atau properti entitas dari jendela Sumber Data ke perancang, Visual Studio menghasilkan XAML yang melakukan hal berikut:
Menambahkan baru CollectionViewSource ke sumber daya kontainer tempat Anda menyeret item. CollectionViewSource adalah objek yang dapat digunakan untuk menavigasi dan menampilkan data dalam entitas.
Membuat pengikatan data untuk kontrol. Jika Anda menyeret item ke kontrol yang ada di perancang, XAML akan mengikat kontrol ke item. Jika Anda menyeret item ke kontainer, XAML membuat kontrol yang dipilih untuk item yang diseret, dan mengikat kontrol ke item. Kontrol dibuat di dalam baru Grid.
Visual Studio juga membuat perubahan berikut pada file code-behind:
Menambahkan metode baru yang mengembalikan kueri untuk entitas yang Anda seret ke perancang (atau entitas yang berisi properti yang Anda seret ke perancang). Metode baru memiliki nama
Get<EntityName>Query
, di mana\<EntityName>
adalah nama entitas.Loaded Membuat penanganan aktivitas untuk elemen UI yang berisi kontrol. Penanganan aktivitas memanggil
Get<EntityName>Query
metode untuk mengisi entitas dengan data, mengambil CollectionViewSource dari sumber daya kontainer, lalu menjadikan item data pertama sebagai item saat ini. Loaded Jika penanganan aktivitas sudah ada, Visual Studio menambahkan kode ini ke penanganan aktivitas yang ada.
Layanan
Saat Anda menyeret objek layanan atau properti dari jendela Sumber Data ke perancang, Visual Studio menghasilkan XAML yang membuat kontrol terikat data (atau mengikat kontrol yang ada ke objek atau properti). Namun, Visual Studio tidak menghasilkan kode yang mengisi objek layanan proksi dengan data. Anda harus menulis kode ini sendiri. Untuk contoh yang menunjukkan cara melakukan ini, lihat Mengikat kontrol WPF ke layanan data WCF.
Visual Studio menghasilkan XAML yang melakukan hal berikut:
Menambahkan baru CollectionViewSource ke sumber daya kontainer tempat Anda menyeret item. CollectionViewSource adalah objek yang dapat digunakan untuk menavigasi dan menampilkan data dalam objek yang dikembalikan oleh layanan.
Membuat pengikatan data untuk kontrol. Jika Anda menyeret item ke kontrol yang ada di perancang, XAML akan mengikat kontrol ke item. Jika Anda menyeret item ke kontainer, XAML membuat kontrol yang dipilih untuk item yang diseret, dan mengikat kontrol ke item. Kontrol dibuat di dalam baru Grid.
Objek
Saat Anda menyeret objek atau properti dari jendela Sumber Data ke perancang, Visual Studio menghasilkan XAML yang membuat kontrol terikat data (atau mengikat kontrol yang ada ke objek atau properti). Namun, Visual Studio tidak menghasilkan kode untuk mengisi objek dengan data. Anda harus menulis kode ini sendiri.
Catatan
Kelas kustom harus publik dan, secara default, memiliki konstruktor tanpa parameter. Mereka tidak dapat menjadi kelas berlapis yang memiliki "titik" dalam sintaksnya. Untuk informasi selengkapnya, lihat XAML dan kelas kustom untuk WPF.
Visual Studio menghasilkan XAML yang melakukan hal berikut:
Menambahkan baru CollectionViewSource ke sumber daya kontainer tempat Anda menyeret item. CollectionViewSource adalah objek yang dapat digunakan untuk menavigasi dan menampilkan data dalam objek.
Membuat pengikatan data untuk kontrol. Jika Anda menyeret item ke kontrol yang ada di perancang, XAML akan mengikat kontrol ke item. Jika Anda menyeret item ke kontainer, XAML membuat kontrol yang dipilih untuk item yang diseret, dan mengikat kontrol ke item. Kontrol dibuat di dalam baru Grid.
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk