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