Bagikan melalui


Opsi Ukuran di Kontrol DataGrid

Berbagai opsi tersedia untuk mengontrol bagaimana ukuran itu DataGrid sendiri. DataGridBaris dan kolom individual , dan di DataGrid, dapat diatur ke ukuran secara otomatis ke kontennya atau dapat diatur ke nilai tertentu. Secara default, DataGrid akan tumbuh dan menyusut agar sesuai dengan ukuran kontennya.

Mengukur DataGrid

Perhatian Saat Menggunakan Ukuran Otomatis

Secara default, Height properti dan Width diatur DataGrid ke Double.NaN ("Auto" di XAML), dan DataGrid akan menyesuaikan dengan ukuran kontennya.

Ketika ditempatkan di dalam kontainer yang tidak membatasi ukuran anak-anaknya, seperti Canvas atau StackPanel, DataGrid akan membentang di luar batas kontainer dan bilah gulir yang terlihat tidak akan ditampilkan. Kondisi ini memiliki implikasi kegunaan dan performa.

Saat terikat ke himpunan data, jika Height tidak dibatasi, itu akan terus menambahkan baris untuk setiap item data dalam himpunan DataGrid data terikat. Ini dapat menyebabkan DataGrid tumbuh di luar batas aplikasi Anda yang terlihat saat baris ditambahkan. DataGrid Tidak akan menampilkan bilah gulir dalam hal ini karena Height akan terus bertambah untuk mengakomodasi baris baru.

Objek dibuat untuk setiap baris di DataGrid. Jika Anda bekerja dengan himpunan data besar dan Anda mengizinkan DataGrid untuk secara otomatis mengukur dirinya sendiri, pembuatan sejumlah besar objek dapat memengaruhi performa aplikasi Anda.

Untuk menghindari masalah ini saat Anda bekerja dengan himpunan data besar, disarankan agar Anda secara khusus mengatur Height atau DataGrid menempatkannya dalam kontainer yang akan membatasinya Height, seperti Grid. Height Ketika dibatasi, DataGrid hanya akan membuat baris yang akan pas dalam baris yang ditentukan Height, dan akan mendaur ulang baris tersebut sesuai kebutuhan untuk menampilkan data baru.

Mengatur Ukuran DataGrid

DataGrid dapat diatur ke ukuran otomatis dalam batas yang ditentukan, atau DataGrid dapat diatur ke ukuran tertentu. Tabel berikut ini memperlihatkan properti yang bisa diatur untuk mengontrol DataGrid ukuran.

Properti Deskripsi
Height Mengatur tinggi tertentu untuk DataGrid.
MaxHeight Mengatur batas atas untuk tinggi DataGrid. akan DataGrid tumbuh secara vertikal sampai mencapai ketinggian ini.
MinHeight Mengatur batas bawah untuk tinggi DataGrid. Akan DataGrid menyusut secara vertikal sampai mencapai ketinggian ini.
Width Mengatur lebar tertentu untuk DataGrid.
MaxWidth Mengatur batas atas untuk lebar DataGrid. akan DataGrid tumbuh secara horizontal sampai mencapai lebar ini.
MinWidth Mengatur batas bawah untuk lebar DataGrid. Akan DataGrid menyusut secara horizontal sampai mencapai lebar ini.

Mengukur Baris dan Header Baris

Baris DataGrid

Secara default, DataGrid properti baris Height diatur ke Double.NaN ("Auto" di XAML), dan tinggi baris akan meluas ke ukuran kontennya. Tinggi semua baris dalam DataGrid dapat ditentukan dengan mengatur DataGrid.RowHeight properti . Pengguna dapat mengubah tinggi baris dengan menyeret pembagi header baris.

Header Baris DataGrid

Untuk menampilkan header baris, HeadersVisibility properti harus diatur ke DataGridHeadersVisibility.Row atau DataGridHeadersVisibility.All. Secara default, header baris ditampilkan dan ukurannya secara otomatis agar sesuai dengan kontennya. Header baris dapat diberikan lebar tertentu dengan mengatur DataGrid.RowHeaderWidth properti .

Kolom Ukuran dan Header Kolom

Kolom DataGrid

DataGrid menggunakan nilai DataGridLength dan DataGridLengthUnitType struktur untuk menentukan mode ukuran absolut atau otomatis.

Tabel berikut ini memperlihatkan nilai yang disediakan oleh DataGridLengthUnitType struktur.

Nama Deskripsi
Auto Mode ukuran otomatis default mengukur DataGrid kolom berdasarkan konten sel dan header kolom.
SizeToCells Mode ukuran otomatis berbasis sel mengukur DataGrid kolom berdasarkan konten sel dalam kolom, tidak termasuk header kolom.
SizeToHeader Mode ukuran otomatis berbasis header mengukur DataGrid kolom berdasarkan konten header kolom saja.
Pixel Mode ukuran berbasis piksel mengukur DataGrid kolom berdasarkan nilai numerik yang disediakan.
Star Mode ukuran bintang digunakan untuk mendistribusikan ruang yang tersedia berdasarkan proporsi tertimbang.

Dalam XAML, nilai bintang dinyatakan sebagai n* di mana n mewakili nilai numerik. 1* setara dengan *. Misalnya, jika dua kolom dalam DataGrid memiliki lebar * dan 2*, kolom pertama akan menerima satu bagian dari ruang yang tersedia dan kolom kedua akan menerima dua bagian dari ruang yang tersedia.

Kelas DataGridLengthConverter dapat digunakan untuk mengonversi data antara nilai numerik atau string dan DataGridLength nilai.

Secara default, DataGrid.ColumnWidth properti diatur ke SizeToHeader, dan DataGridColumn.Width properti diatur ke Auto. Ketika mode ukuran diatur ke Auto atau SizeToCells, kolom akan tumbuh ke lebar konten yang terlihat paling luas. Saat menggulir, mode ukuran ini akan menyebabkan kolom diperluas jika konten yang lebih besar dari ukuran kolom saat ini digulir ke tampilan. Kolom tidak akan menyusut setelah konten digulir keluar dari tampilan.

Kolom dalam DataGrid juga dapat diatur ke ukuran otomatis hanya dalam batas yang ditentukan, atau kolom dapat diatur ke ukuran tertentu. Tabel berikut ini memperlihatkan properti yang bisa diatur untuk mengontrol ukuran kolom.

Properti Deskripsi
DataGrid.MaxColumnWidth Mengatur batas atas untuk semua kolom di DataGrid.
DataGridColumn.MaxWidth Mengatur batas atas untuk kolom individual. Mengambil alih DataGrid.MaxColumnWidth.
DataGrid.MinColumnWidth Mengatur batas bawah untuk semua kolom di DataGrid.
DataGridColumn.MinWidth Mengatur batas bawah untuk kolom individual. Mengambil alih DataGrid.MinColumnWidth.
DataGrid.ColumnWidth Mengatur lebar tertentu untuk semua kolom di DataGrid.
DataGridColumn.Width Mengatur lebar tertentu untuk kolom individual. Mengambil alih DataGrid.ColumnWidth.

Header Kolom DataGrid

Secara default, DataGrid header kolom ditampilkan. Untuk menyembunyikan header kolom, HeadersVisibility properti harus diatur ke DataGridHeadersVisibility.Row atau DataGridHeadersVisibility.None. Secara default, saat header kolom ditampilkan, header kolom secara otomatis berukuran agar pas dengan kontennya. Header kolom dapat diberikan tinggi tertentu dengan mengatur DataGrid.ColumnHeaderHeight properti .

Mengubah ukuran dengan Mouse

Pengguna dapat mengubah ukuran DataGrid baris dan kolom dengan menyeret pembagi header baris atau kolom. juga DataGrid mendukung perubahan ukuran baris dan kolom otomatis dengan mengklik dua kali pembagi baris atau header kolom. Untuk mencegah pengguna mengubah ukuran kolom tertentu, atur DataGridColumn.CanUserResize properti ke false untuk kolom individual. Untuk mencegah pengguna mengubah ukuran semua kolom, atur properti ke DataGrid.CanUserResizeColumnsfalse. Untuk mencegah pengguna mengubah ukuran semua baris, atur properti ke DataGrid.CanUserResizeRowsfalse.

Baca juga