Delen via


Grootteopties in het DataGrid-besturingselement

Er zijn verschillende opties beschikbaar om te bepalen hoe de DataGrid de grootte zelf bepaalt. De DataGrid, en de afzonderlijke rijen en kolommen in de DataGrid, kunnen automatisch op de grootte van hun inhoud worden ingesteld of kunnen worden ingesteld op specifieke waarden. De DataGrid wordt standaard groter en verkleind zodat deze past bij de grootte van de inhoud.

De grootte van DataGrid aanpassen

Waarschuwingen bij het gebruik van automatische grootte

De eigenschappen Height en Width van de DataGrid zijn standaard ingesteld op Double.NaN ("Auto" in XAML) en de DataGrid wordt aangepast aan de grootte van de inhoud.

Wanneer deze wordt geplaatst in een container die de grootte van zijn onderliggende elementen niet beperkt, zoals een Canvas of StackPanel, zal de DataGrid zich uitstrekken buiten de zichtbare grenzen van de container en zullen er geen schuifbalken worden weergegeven. Deze voorwaarde heeft gevolgen voor zowel bruikbaarheid als prestaties.

Wanneer gebonden aan een gegevensset, als de Height van de DataGrid niet is beperkt, zal het doorgaan met het toevoegen van een rij voor elk gegevensitem in de gebonden gegevensset. Dit kan ertoe leiden dat de DataGrid buiten de zichtbare grenzen van uw toepassing groeit wanneer er rijen worden toegevoegd. In dit geval worden in de DataGrid geen schuifbalken weergegeven, omdat de Height blijft groeien om de nieuwe rijen aan te kunnen.

Er wordt een object gemaakt voor elke rij in de DataGrid. Als u met een grote gegevensset werkt en de DataGrid automatisch de grootte ervan toestaat, kan het maken van een groot aantal objecten van invloed zijn op de prestaties van uw toepassing.

Als u deze problemen wilt voorkomen wanneer u met grote gegevenssets werkt, wordt u aangeraden specifiek de Height van de DataGrid in te stellen of in een container te plaatsen die de Heightbeperkt, zoals een Grid. Wanneer de Height is beperkt, maakt de DataGrid alleen de rijen die binnen de opgegeven Heightpassen en worden deze rijen zo nodig gerecycled om nieuwe gegevens weer te geven.

De DataGrid-grootte instellen

De DataGrid kan worden ingesteld om automatisch de grootte aan te passen binnen de opgegeven grenzen, of de DataGrid kan worden ingesteld op een specifieke grootte. In de volgende tabel ziet u de eigenschappen die kunnen worden ingesteld om de DataGrid grootte te bepalen.

Vastgoed Beschrijving
Height Hiermee stelt u een specifieke hoogte in voor de DataGrid.
MaxHeight Hiermee stelt u de bovengrens in voor de hoogte van de DataGrid. De DataGrid zal verticaal groeien totdat deze hoogte is bereikt.
MinHeight Hiermee stelt u de ondergrens in voor de hoogte van de DataGrid. De DataGrid wordt verticaal verkleind totdat deze hoogte is bereikt.
Width Hiermee stelt u een specifieke breedte in voor de DataGrid.
MaxWidth Hiermee stelt u de bovengrens in voor de breedte van de DataGrid. De DataGrid zal horizontaal groeien totdat deze breedte wordt bereikt.
MinWidth Hiermee stelt u de ondergrens in voor de breedte van de DataGrid. De DataGrid wordt horizontaal verkleind totdat deze breedte wordt bereikt.

De grootte van rijen en rijkoppen wijzigen

DataGrid-rijen

De eigenschap DataGrid van een Height rij is standaard ingesteld op Double.NaN ("Auto" in XAML) en de rijhoogte wordt uitgebreid tot de grootte van de inhoud. De hoogte van alle rijen in de DataGrid kan worden opgegeven door de eigenschap DataGrid.RowHeight in te stellen. Gebruikers kunnen de rijhoogte wijzigen door de scheidingslijnen van de rijkoppen te verslepen.

DataGrid-rijkoppen

Als u rijkoppen wilt weergeven, moet de eigenschap HeadersVisibility zijn ingesteld op DataGridHeadersVisibility.Row of DataGridHeadersVisibility.All. Standaard worden de koppen van de rijen weergegeven en passen ze automatisch aan hun inhoud aan. De rijkoppen kunnen een specifieke breedte krijgen door de eigenschap DataGrid.RowHeaderWidth in te stellen.

Grootte van kolommen en kolomkoppen aanpassen

DataGrid-kolommen

De DataGrid gebruikt waarden van de DataGridLength en de DataGridLengthUnitType structuur om absolute of automatische groottemodi op te geven.

In de volgende tabel ziet u de waarden van de DataGridLengthUnitType structuur.

Naam Beschrijving
Auto De standaard automatische groottemodus bepaalt DataGrid kolommen op basis van de inhoud van zowel cellen als kolomkoppen.
SizeToCells In de op cellen gebaseerde automatische aanpassingsmodus worden DataGrid kolommen aangepast op basis van de inhoud van de cellen in de kolom, exclusief kolomkoppen.
SizeToHeader De op kopteksten gebaseerde automatische modus past de grootte van DataGrid kolommen alleen aan op basis van de inhoud van kolomkoppen.
Pixel De pixel-gebaseerde formaatmodus bepaalt de grootte van DataGrid kolommen op basis van de opgegeven numerieke waarde.
Star De modus voor stergrootte wordt gebruikt om de beschikbare ruimte te verdelen met gewogen verhoudingen.

In XAML worden sterwaarden uitgedrukt als n* waarbij n een numerieke waarde vertegenwoordigt. 1* is gelijk aan *. Als bijvoorbeeld twee kolommen in een DataGrid een breedte van * en 2* hadden, ontvangt de eerste kolom één deel van de beschikbare ruimte en ontvangt de tweede kolom twee delen van de beschikbare ruimte.

De DataGridLengthConverter-klasse kan worden gebruikt om gegevens te converteren tussen numerieke waarden of tekenreekswaarden en DataGridLength waarden.

De eigenschap DataGrid.ColumnWidth is standaard ingesteld op SizeToHeaderen de eigenschap DataGridColumn.Width is ingesteld op Auto. Wanneer de groottemodus is ingesteld op Auto of SizeToCells, worden kolommen uitgebreid tot de breedte van de breedste zichtbare inhoud. Wanneer u schuift, zullen deze formaatmodi ervoor zorgen dat kolommen worden uitgevouwen als inhoud die groter is dan de huidige kolomgrootte wordt geschoven naar de weergave. De kolom wordt niet verkleind nadat de inhoud uit de weergave is geschoven.

Kolommen in de DataGrid kunnen ook zo worden ingesteld dat ze automatisch binnen de opgegeven grenzen worden geschaald, ofwel kunnen kolommen worden ingesteld op een specifieke grootte. In de volgende tabel ziet u de eigenschappen die kunnen worden ingesteld om kolomgrootten te beheren.

Vastgoed Beschrijving
DataGrid.MaxColumnWidth Hiermee stelt u de bovengrens in voor alle kolommen in de DataGrid.
DataGridColumn.MaxWidth Hiermee stelt u de bovengrens voor een afzonderlijke kolom in. Overschrijft DataGrid.MaxColumnWidth.
DataGrid.MinColumnWidth Hiermee stelt u de ondergrens in voor alle kolommen in de DataGrid.
DataGridColumn.MinWidth Hiermee stelt u de ondergrens voor een afzonderlijke kolom in. Overschrijft DataGrid.MinColumnWidth.
DataGrid.ColumnWidth Hiermee stelt u een specifieke breedte in voor alle kolommen in de DataGrid.
DataGridColumn.Width Hiermee stelt u een specifieke breedte in voor een afzonderlijke kolom. Overschrijft DataGrid.ColumnWidth.

DataGrid-kolomkoppen

Worden standaard DataGrid kolomkoppen weergegeven. Als u kolomkoppen wilt verbergen, moet de eigenschap HeadersVisibility zijn ingesteld op DataGridHeadersVisibility.Row of DataGridHeadersVisibility.None. Wanneer kolomkoppen worden weergegeven, wordt de grootte standaard automatisch aangepast aan de inhoud. De kolomkoppen kunnen een specifieke hoogte krijgen door de eigenschap DataGrid.ColumnHeaderHeight in te stellen.

Formaat wijzigen met de muis

Gebruikers kunnen het formaat van DataGrid rijen en kolommen wijzigen door de scheidingslijnen van de rij- of kolomkop te slepen. De DataGrid ondersteunt ook het automatisch aanpassen van het formaat van rijen en kolommen door dubbel te klikken op de scheidingslijn van de rij- of kolomkop. Als u wilt voorkomen dat een gebruiker het formaat van bepaalde kolommen wijzigt, stelt u de eigenschap DataGridColumn.CanUserResize in op false voor de afzonderlijke kolommen. Als u wilt voorkomen dat gebruikers het formaat van alle kolommen wijzigen, stelt u de eigenschap DataGrid.CanUserResizeColumns in op false. Als u wilt voorkomen dat gebruikers het formaat van alle rijen wijzigen, stelt u de eigenschap DataGrid.CanUserResizeRows in op false.

Zie ook