Mengikat kontrol WPF ke himpunan 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. Teknologi ini sangat berguna untuk aplikasi yang memungkinkan pengguna 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.
Dalam panduan ini, Anda membuat aplikasi WPF yang berisi kontrol terikat data. Kontrol terikat ke rekaman produk yang dirangkum dalam himpunan data. Anda juga menambahkan tombol untuk menelusuri produk dan menyimpan perubahan pada catatan produk.
Panduan ini mengilustrasikan tugas-tugas berikut:
Membuat aplikasi WPF dan himpunan data yang dihasilkan dari data dalam database sampel AdventureWorksLT.
Membuat sekumpulan kontrol terikat data dengan menyeret tabel data dari jendela Sumber Data ke jendela di WPF Designer.
Membuat tombol yang menavigasi ke depan dan mundur melalui rekaman produk.
Membuat tombol yang menyimpan perubahan yang dilakukan pengguna ke rekaman produk ke tabel data dan sumber data yang mendasar.
Catatan
Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam artikel ini. Anda mungkin menggunakan edisi Visual Studio yang berbeda atau pengaturan lingkungan yang berbeda. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.
Prasyarat
Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:
Untuk menyelesaikan tutorial ini, Anda memerlukan beban kerja pengembangan desktop .NET dan Penyimpanan data dan pemrosesan yang diinstal di Visual Studio. Untuk menginstalnya, buka penginstal Visual Studio, lalu pilih Ubah(atau Lebih> Ubah) di samping versi Visual Studio yang ingin Anda ubah. Lihat Ubah Visual Studio.
Akses ke instans SQL Server atau SQL Server Express yang berjalan yang memiliki database sampel AdventureWorks Light (AdventureWorksLT) yang melekat padanya. Untuk mengunduh database, lihat Database sampel AdventureWorks.
Pemahaman sebelumnya tentang konsep berikut juga berguna, tetapi tidak diperlukan untuk menyelesaikan panduan:
Himpunan data dan TableAdapters. Untuk informasi selengkapnya, lihat Alat himpunan data di Visual Studio dan TableAdapters.
Pengikatan data WPF. Untuk informasi selengkapnya, lihat Gambaran Umum Pengikatan Data.
Membuat proyek
Buat proyek WPF baru untuk menampilkan rekaman produk.
Buka Visual Studio.
Dari jendela awal, pilih Buat proyek baru.
Cari templat proyek Aplikasi C# WPF dan ikuti langkah-langkah untuk membuat proyek, menamai proyek AdventureWorksProductsEditor.
Visual Studio membuat proyek AdventureWorksProductsEditor.
Membuat himpunan data untuk aplikasi
Sebelum dapat membuat kontrol terikat data, Anda harus menentukan model data untuk aplikasi Anda dan menambahkannya ke jendela Sumber Data. Dalam panduan ini, Anda membuat himpunan data untuk digunakan sebagai model data.
Pada menu Data klik Perlihatkan Sumber Data.
Jendela Sumber Data terbuka.
Di jendela Sumber Data, klik Tambahkan Sumber Data Baru.
Wizard Konfigurasi Sumber Data terbuka.
Pada halaman Pilih Tipe Sumber Data, pilih Database, lalu pilih Berikutnya.
Pada halaman Pilih Model Database, pilih Himpunan Data, lalu pilih Berikutnya.
Pada halaman Pilih Koneksi Data Anda, pilih salah satu opsi berikut ini:
Jika koneksi data ke database sampel AdventureWorksLT tersedia di daftar dropdown, pilih, lalu pilih Berikutnya.
Klik Koneksi Baru, dan buat koneksi ke database AdventureWorksLT.
Pada halaman Simpan String Koneksi ke File Konfigurasi Aplikasi, pilih kotak centang Ya, simpan koneksi sebagai , lalu pilih Berikutnya.
Pada halaman Pilih Objek Database Anda, perluas Tabel, lalu pilih tabel Produk (SalesLT).
Klik Selesai.
Visual Studio menambahkan file
AdventureWorksLTDataSet.xsd
baru ke proyek, dan menambahkan item AdventureWorksLTDataSet yang sesuai ke jendela Sumber Data. FileAdventureWorksLTDataSet.xsd
menentukan himpunan data berjenis bernamaAdventureWorksLTDataSet
dan TableAdapter bernamaProductTableAdapter
. Nantinya dalam panduan ini, Anda akan menggunakanProductTableAdapter
untuk mengisi himpunan data dengan data dan menyimpan perubahan kembali ke database.Bangun proyek.
Mengedit metode pengisian default TableAdapter
Untuk mengisi himpunan data dengan data, gunakan metode Fill
dari ProductTableAdapter
. Secara default, metode Fill
mengisi ProductDataTable
dalam AdventureWorksLTDataSet
dengan semua baris data dari tabel Produk. Anda dapat mengubah metode ini untuk mengembalikan hanya subset baris. Untuk panduan ini, ubah metode Fill
untuk mengembalikan hanya baris untuk produk yang memiliki foto.
Di Penjelajah Solusi, klik dua kali file AdventureWorksLTDataSet.xsd.
Perancang Himpunan data terbuka.
Di perancang, klik kanan kueri Isi, GetData() dan pilih Konfigurasikan.
Wizard Konfigurasi TableAdapter terbuka.
Di halaman Masukkan Pernyataan SQL, tambahkan klausa berikut
WHERE
setelahSELECT
pernyataan dalam kotak teks.WHERE ThumbnailPhotoFileName <> 'no_image_available_small.gif'
Klik Selesai.
Menentukan antarmuka pengguna
Tambahkan beberapa tombol ke jendela dengan memodifikasi XAML di WPF Designer. Nantinya dalam panduan ini, Anda akan menambahkan kode yang memungkinkan pengguna untuk menggulir dan menyimpan perubahan pada rekaman produk dengan menggunakan tombol ini.
Di Penjelajah Solusi, klik dua kali MainWindow.xaml.
Jendela terbuka di WPF Designer.
Dalam tampilan XAML perancang, tambahkan kode berikut di antara tag
<Grid>
:<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="625" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
Bangun proyek.
Membuat kontrol terikat data
Buat kontrol yang menampilkan rekaman pelanggan dengan menyeret tabel Product
dari jendela Sumber Data ke WPF Designer.
Di jendela Sumber Data, klik menu daftar dropdown untuk simpul Produk dan pilih Detail.
Perluas node Produk.
Untuk contoh ini, beberapa bidang tidak akan ditampilkan, jadi klik menu daftar dropdown di samping simpul berikut dan pilih Tidak Ada:
ProductCategoryID
ProductModelID
ThumbnailPhotoFileName
rowguid
ModifiedDate
Klik menu daftar dropdown di samping simpul ThumbNailPhoto dan pilih Gambar.
Catatan
Secara default, item di jendela Sumber Data yang mewakili gambar memiliki kontrol default yang diatur ke Tidak Ada. Ini karena gambar disimpan sebagai array byte dalam database, dan array byte dapat berisi apa pun dari array byte sederhana hingga file yang dapat dieksekusi dari aplikasi besar.
Dari jendela Sumber Data, seret node Produk ke baris kisi di bawah baris yang berisi tombol.
Visual Studio menghasilkan XAML yang menentukan sekumpulan kontrol yang terikat ke data dalam tabel Produk. Ini juga menghasilkan kode yang memuat data. Untuk informasi selengkapnya tentang XAML dan kode yang dihasilkan, lihat Mengikat kontrol WPF ke data dalam Visual Studio.
Di perancang, klik kotak teks di samping label ID Produk.
Di jendela Properti , pilih kotak centang di samping properti IsReadOnly .
Menavigasi rekaman produk
Tambahkan kode yang memungkinkan pengguna untuk menggulir rekaman produk dengan menggunakan tombol < dan >.
Di perancang, klik dua kali tombol < pada permukaan jendela.
Visual Studio membuka file code-behind, dan membuat penanganan aktivitas
backButton_Click
baru untuk peristiwa Click tersebut.Ubah penanganan aktivitas
Window_Loaded
, sehinggaProductViewSource
,AdventureWorksLTDataSet
, danAdventureWorksLTDataSetProductTableAdapter
berada di luar metode dan dapat diakses oleh seluruh formulir. Nyatakan hanya ini untuk menjadi global ke formulir, dan tetapkan dalam penanganan aktivitasWindow_Loaded
yang mirip dengan yang berikut ini:private AdventureWorksProductsEditor.AdventureWorksLTDataSet AdventureWorksLTDataSet; private AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter adventureWorksLTDataSetProductTableAdapter; private System.Windows.Data.CollectionViewSource productViewSource; private void Window_Loaded(object sender, RoutedEventArgs e) { AdventureWorksLTDataSet = ((AdventureWorksProductsEditor.AdventureWorksLTDataSet)(this.FindResource("adventureWorksLTDataSet"))); // Load data into the table Product. You can modify this code as needed. adventureWorksLTDataSetProductTableAdapter = new AdventureWorksProductsEditor.AdventureWorksLTDataSetTableAdapters.ProductTableAdapter(); adventureWorksLTDataSetProductTableAdapter.Fill(AdventureWorksLTDataSet.Product); productViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("productViewSource"))); productViewSource.View.MoveCurrentToFirst(); }
Tambahkan kode berikut ke penanganan aktivitas
backButton_Click
:Kembali ke perancang dan klik dua kali tombol >.
Tambahkan kode berikut ke penanganan aktivitas
nextButton_Click
:
Menyimpan perubahan ke rekaman produk
Tambahkan kode yang memungkinkan pengguna menyimpan perubahan ke rekaman produk dengan menggunakan tombol Simpan perubahan.
Di perancang, klik dua kali tombol Simpan perubahan.
Visual Studio membuka file code-behind, dan membuat penanganan aktivitas
saveButton_Click
baru untuk peristiwa Click tersebut.Tambahkan kode berikut ke penanganan aktivitas
saveButton_Click
:Catatan
Contoh ini menggunakan metode
Save
dariTableAdapter
untuk menyimpan perubahan. Ini sesuai dalam panduan ini, karena hanya satu tabel data yang sedang diubah. Jika Anda perlu menyimpan perubahan ke beberapa tabel data, Anda dapat menggunakan metodeUpdateAll
dariTableAdapterManager
yang Visual Studio hasilkan dengan himpunan data Anda. Untuk informasi selengkapnya, lihat TableAdapters.
Uji aplikasi
Membuat dan menjalankan aplikasi. Verifikasi bahwa Anda bisa menampilkan dan memperbarui catatan produk.
Tekan F5.
Aplikasi membangun dan menjalankan. Verifikasi hal berikut:
Kotak teks menampilkan data dari rekaman produk pertama yang memiliki foto. Produk ini memiliki ID produk 713, dan nama Long-Sleeve Logo Jersey, S.
Anda dapat mengklik tombol > atau < untuk menavigasi melalui rekaman produk lainnya.
Di salah satu rekaman produk, ubah nilai Ukuran , lalu pilih Simpan perubahan.
Tutup aplikasi, lalu mulai ulang aplikasi dengan menekan F5 di Visual Studio.
Navigasikan ke catatan produk yang Anda ubah, dan verifikasi bahwa perubahan tetap ada.
Tutup aplikasi.
Langkah berikutnya
Setelah menyelesaikan panduan ini, Anda mungkin mencoba tugas terkait berikut:
Pelajari cara menggunakan jendela Sumber Data di Visual Studio untuk mengikat kontrol WPF ke jenis sumber data lainnya. Untuk informasi selengkapnya, lihat Mengikat kontrol WPF ke layanan data WCF.
Pelajari cara menggunakan jendela Sumber Data di Visual Studio untuk menampilkan data terkait (yaitu, data dalam hubungan induk-anak) dalam kontrol WPF. Untuk informasi selengkapnya, lihat Panduan: Menampilkan data terkait di aplikasi WPF.