Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met het besturingselement DataGrid kunt u gegevens uit veel verschillende bronnen weergeven en bewerken, zoals uit een SQL-database, LINQ-query of een andere bindbare gegevensbron. Zie Overzicht van bindingsbronnenvoor meer informatie.
Binding met gegevens
Als u de DataGrid wilt binden aan gegevens, stelt u de ItemsSource eigenschap in op een IEnumerable implementatie. Elke rij in het gegevensraster is gebonden aan een object in de gegevensbron en elke kolom in het gegevensraster is gebonden aan een eigenschap van het gegevensobject.
Als de DataGrid gebruikersinterface automatisch wordt bijgewerkt wanneer items worden toegevoegd aan of verwijderd uit de brongegevens, moet deze DataGrid zijn gebonden aan een verzameling waarmee de INotifyCollectionChanged interface wordt geïmplementeerd, zoals een ObservableCollection<T>. Als u wijzigingen in eigenschappen automatisch wilt weergeven, moeten de objecten in de bronverzameling de INotifyPropertyChanged interface implementeren. Zie Overzicht van gegevensbinding voor meer informatie.
Kolommen kunnen tekst, besturingselementen, zoals een ComboBoxof andere WPF-inhoud, zoals afbeeldingen, knoppen of inhoud in een sjabloon, weergeven. U kunt een DataGridTemplateColumn gebruiken om gegevens weer te geven die zijn gedefinieerd in een sjabloon. De volgende tabel bevat de kolomtypen die standaard worden opgegeven.
| Het gegenereerde kolomtype | Gegevenssoort |
|---|---|
| DataGridTextColumn | String |
| DataGridCheckBoxColumn | Boolean |
| DataGridComboBoxColumn | Enum |
| DataGridHyperlinkColumn | Uri |
Kolommen automatisch genereren
Standaard genereert de DataGrid controle automatisch kolommen wanneer u de ItemsSource eigenschap instelt. Het type kolom dat wordt gegenereerd, is afhankelijk van het gegevenstype in de kolom, zoals wordt weergegeven in de voorgaande tabel.
Wanneer kolommen automatisch worden gegenereerd, kunt u de AutoGeneratingColumn gebeurtenis afhandelen om kolommen aan te passen of te annuleren voordat ze aan de DataGridkolom worden toegevoegd. Als u zowel door de gebruiker gedefinieerde kolommen als automatisch gegenereerde kolommen aan de DataGridkolom toevoegt, worden de door de gebruiker gedefinieerde kolommen eerst toegevoegd. Als u de weergavevolgorde van de kolommen wilt wijzigen, kunt u de DisplayIndex eigenschap voor afzonderlijke kolommen instellen.
U kunt automatische kolomgeneratie voorkomen door de AutoGenerateColumns eigenschap in te stellen op false. Dit is handig als u alle kolommen expliciet wilt maken en configureren.
Aangepaste kolommen
Gebruik het DataGridTemplateColumn type om een aangepaste kolom te definiëren als de ingebouwde kolomtypen niet aan uw behoeften voldoen. Het DataGridTemplateColumn type biedt CellTemplate en CellEditingTemplate eigenschappen waarmee u inhoudssjablonen kunt opgeven voor weergave- en bewerkingsmodi. U kunt bijvoorbeeld een aangepaste kolom definiëren voor datums. Het CellTemplate kan een TextBlock definiëren om een datum weer te geven en het CellEditingTemplate kan een DatePicker besturingselement definiëren om de datum te bewerken.
U kunt de Columns verzameling gebruiken om tijdens runtime programmatisch kolommen in het besturingselement toe te voegen, in te voegen, te verwijderen en te wijzigen. Controleer de IsAutoGenerated eigenschap om te bepalen of een kolom automatisch wordt gegenereerd of door de gebruiker is gedefinieerd. Automatisch gegenereerde kolommen worden automatisch toegevoegd, verwijderd of opnieuw gegenereerd wanneer de ItemsSource wijzigingen worden aangebracht.
DataGrid kan qua uiterlijk worden aangepast, zoals cellettertype, kleur en grootte. DataGrid ondersteunt alle stijl- en temperingsfunctionaliteit van andere WPF-besturingselementen. DataGrid bevat ook standaard- en aanpasbaar gedrag voor bewerken, sorteren en valideren.
Bewerken
Standaard kunt u items rechtstreeks in de DataGrid. Om ervoor te zorgen dat bewerkingen correct kunnen worden doorgevoerd en geannuleerd, moeten de objecten in de DataGrid de IEditableObject interface implementeren. U kunt de eigenschap IsReadOnly ook instellen op true om bewerken in de DataGrid uit te schakelen.
De DataGrid heeft ingebouwde ondersteuning voor de volgende bewerkingsopdrachten:
| Command | Standaardsleutel |
|---|---|
| BeginEditCommand | F2 |
| CancelEditCommand | ESC |
| CommitEditCommand | ENTER |
| DeleteCommand | Verwijderen |
U plaatst de huidige cel in de bewerkingsmodus door erop te klikken of op F2 te drukken. Een bewerking op celniveau wordt doorgevoerd wanneer u naar een andere cel in dezelfde rij gaat of op Enter drukt terwijl de cel zich in de bewerkingsmodus bevindt. Alle bewerkingen in een rij worden doorgevoerd wanneer u naar een andere rij gaat of op Enter drukt terwijl de rij zich in de bewerkingsmodus bevindt. U annuleert een celbewerking door één keer op Esc te drukken en alle bewerkingen in een rij te annuleren door twee keer op Esc te drukken. Zie de BeginEditen CommitEditCancelEdit methoden voor meer informatie over het programmatisch doorvoeren en annuleren van bewerkingen.
Stel de CanUserAddRows en CanUserDeleteRows eigenschappen in om op te geven of een gebruiker rijen kan toevoegen of verwijderen. Een gebruiker kan geselecteerde rijen verwijderen door op delete te drukken. Als de CanUserAddRows eigenschap is ingesteld op true, wordt er een nieuwe itemrij toegevoegd als de laatste rij in de DataGrid. U kunt standaardwaarden voor nieuwe items instellen door de InitializingNewItem gebeurtenis af te handelen.
Opmerking
Of bewerkingsacties zijn toegestaan, hangt af van vele factoren, waaronder de IsReadOnly- en IsEnabled-status van de DataGrid, en of de onderliggende dataverzameling de actie toestaat.
Selectie
Standaard wordt de hele rij geselecteerd wanneer een gebruiker op een cel in een DataGridcel klikt en een gebruiker meerdere rijen kan selecteren. U kunt de SelectionUnit eigenschap instellen om op te geven of een gebruiker cellen, volledige rijen of beide kan selecteren. Stel de SelectionMode eigenschap in om op te geven of meerdere rijen of cellen kunnen worden geselecteerd, of alleen enkele rijen of cellen.
U kunt informatie krijgen over de cellen die zijn geselecteerd in de SelectedCells eigenschap. U kunt informatie krijgen over cellen waarvoor de selectie is gewijzigd in de SelectedCellsChangedEventArgsSelectedCellsChanged gebeurtenis. Roep de SelectAllCells- of UnselectAllCells-methoden aan om alle cellen met een programma te selecteren of te deselecteren. Zie Het standaardgedrag van het toetsenbord en de muis in het DataGrid-besturingselement voor meer informatie.
Groeperen, sorteren en filteren
Standaard kunt u items in een DataGrid sorteren door op de kolomkop te klikken. U kunt sorteren aanpassen door de Sorting gebeurtenis te verwerken. Als u de standaardsorteerding wilt annuleren, stelt u de Handled eigenschap in op true. U kunt de brongegevens ook sorteren voordat deze worden weergegeven in de DataGrid.
Als u gegevens in de DataGridgroep wilt groeperen, sorteren en filteren, verbindt u de DataGrid met een ICollectionView implementatie die deze bewerkingen ondersteunt. Vervolgens voert u de bewerkingen uit in de verzamelingsweergave. Wanneer items in de DataGridgroep zijn gegroepeerd, kunt u een GroupStyle definiëren die het uiterlijk van elke groep aangeeft. U past het GroupStyle toe door deze toe te voegen aan de GroupStyle verzameling van de DataGrid. Als u meerdere groepeerniveaus hebt, kunt u verschillende stijlen toepassen op elk groepsniveau. Stijlen worden toegepast in de volgorde waarin ze worden gedefinieerd. Zie Instructies voor meer informatie : Gegevens groeperen, sorteren en filteren in het DataGrid-besturingselement.
Validation
Hiermee DataGrid kunt u validatie uitvoeren op zowel cel- als rijniveau. Met validatie op celniveau valideert u afzonderlijke eigenschappen van een afhankelijk gegevensobject wanneer een gebruiker een waarde bijwerken. Met validatie op rijniveau valideert u hele gegevensobjecten wanneer een gebruiker wijzigingen doorvoert in een rij. U kunt aangepaste visuele feedback geven voor validatiefouten op rijniveau door de RowValidationErrorTemplate eigenschap in te stellen of u kunt de standaardfoutindicator gebruiken. Als u een aangepaste validatieregel wilt maken, maakt u een klasse die is afgeleid van de ValidationRule klasse en implementeert u de Validate methode. Voeg de aangepaste validatieregel toe aan de RowValidationRules verzameling.
Algemene taken
De volgende tabel bevat enkele algemene taken voor DataGrid en hoe u deze kunt uitvoeren. Door de gerelateerde API te bekijken, vindt u meer informatie en voorbeeldcode.
| Scenariobeschrijving | Methode |
|---|---|
| Afwisselende achtergrondkleuren | Stel de eigenschap AlternationCount in op 2 of meer en wijs vervolgens een Brush toe aan de eigenschappen RowBackground en AlternatingRowBackground. |
| Gedrag voor cel- en rijselectie definiëren | Stel de eigenschappen SelectionMode en SelectionUnit in. |
| Het uiterlijk van kopteksten, cellen en rijen aanpassen | Pas een nieuwe Style toe op de eigenschappen ColumnHeaderStyle, RowHeaderStyle, CellStyleof RowStyle. |
| Grootteopties instellen | Stel de eigenschappen Height, MaxHeight, MinHeight, Width, MaxWidthof MinWidth in. Zie Grootteopties in het DataGrid-besturingselementvoor meer informatie. |
| Geselecteerde items openen | Controleer de eigenschap SelectedCells om de geselecteerde cellen en de eigenschap SelectedItems op te halen om de geselecteerde rijen op te halen. Zie SelectedCells voor meer informatie. |
| Interacties van eindgebruikers aanpassen | Stel de eigenschappen CanUserAddRows, CanUserDeleteRows, CanUserReorderColumns, CanUserResizeColumns, CanUserResizeRowsen CanUserSortColumns in. |
| Automatisch gegenereerde kolommen annuleren of wijzigen | De AutoGeneratingColumn gebeurtenis afhandelen. |
| Een kolom blokkeren | Stel de eigenschap FrozenColumnCount in op 1 en verplaats de kolom naar de meest linkse positie door de eigenschap DisplayIndex in te stellen op 0. |
| XML-gegevens gebruiken als gegevensbron | Bind de ItemsSource op de DataGrid aan de XPath-query die de verzameling items vertegenwoordigt. Maak elke kolom in DataGrid. Bind elke kolom door het XPath in te stellen op de binding met de query die de eigenschap op de itembron ophaalt. Zie DataGridTextColumnvoor een voorbeeld. |
Verwante artikelen
| Titel | Beschrijving |
|---|---|
| DataGrid-elementen | Hierin worden de elementtypen beschreven waaruit de DataGrid bestaat, inclusief DataGridCell, DataGridRow, DataGridRowHeader, DataGridColumnHeader, en DataGridColumnHeadersPresenter. |
| Handleiding: Gegevens uit een SQL Server-database weergeven in een DataGrid control | Beschrijft hoe u een nieuw WPF-project instelt, een Entity Framework-element toevoegt, de bron instelt en de gegevens weergeeft in een DataGrid. |
| Instructies: Rijdetails toevoegen aan een DataGrid-besturingselement | Hierin wordt beschreven hoe u rijdetails van een DataGridmaakt. |
| Procedure: Validatie implementeren met het DataGrid-besturingselement | Beschrijft hoe u waarden in DataGrid cellen en rijen valideert en validatiefeedback weergeeft. |
| standaardgedrag van toetsenbord en muis in het DataGrid-besturingselement | Beschrijft hoe u met het DataGrid besturingselement communiceert met behulp van het toetsenbord en de muis. |
| Procedure: Gegevens groeperen, sorteren en filteren in het DataGrid-besturingselement | Hierin wordt beschreven hoe u gegevens in een DataGrid op verschillende manieren kunt weergeven door de gegevens te groeperen, te sorteren en te filteren. |
| Opties voor Grootte-aanpassing in het DataGrid-besturingselement | Hierin wordt beschreven hoe u absolute en automatische grootte bepaalt in de DataGrid. |
De DataGrid aanpassen
Het DataGrid besturingselement ondersteunt algemene opties voor tabelopmaak, zoals afwisselende rijachtergronden en de mogelijkheid om kopteksten, rasterlijnen en schuifbalken weer te geven of te verbergen. Daarnaast biedt het besturingselement verschillende stijl- en sjablooneigenschappen die u kunt gebruiken om het uiterlijk van het besturingselement en de bijbehorende rijen, kolommen, koppen en cellen volledig te wijzigen.
Als u het gedrag wilt aanpassen DataGrid , kunt u gebeurtenissen afhandelen voor selectiewijziging, celbewerking en kolomherschikking. Daarnaast biedt DataGrid verschillende evenementen voor het recyclen van rijen die u kunt aanpassen om rijen naar wens te configureren.
Als u dezelfde eigenschapsinstellingen wilt toepassen op meerdere DataGrid besturingselementen, gebruikt u de Style eigenschap. U kunt de standaardinstelling ControlTemplate wijzigen om het besturingselement een uniek uiterlijk te geven. Zie voor meer informatie over het maken van een ControlTemplate de sectie Een sjabloon voor een besturingselement maken.
Afhankelijkheden voor dit besturingselement kunnen worden ingesteld door de standaardstijl van het besturingselement. Als een eigenschap door een standaardstijl is ingesteld, kan de eigenschap afwijken van de standaardwaarde wanneer de controle in de toepassing verschijnt. De standaardstijl wordt bepaald door welk bureaubladthema wordt gebruikt wanneer de toepassing wordt uitgevoerd.
Opmerking
Het instellen van een visuele eigenschap heeft alleen een effect als die eigenschap zowel aanwezig is in de standaardsjabloon van het besturingselement als ingesteld met behulp van een TemplateBinding.
Stijlen en sjablonen
In deze sectie worden de stijlen en sjablonen voor het DataGrid besturingselement beschreven. U kunt de standaardinstelling ControlTemplate wijzigen om het besturingselement een uniek uiterlijk te geven. Voor meer informatie, zie Styling en Templating en Een sjabloon maken voor een besturingselement.
Inhoudseigenschap
Het DataGrid besturingselement gebruikt de ItemsSource eigenschap om de gegevensbron te definiëren. De gegevensbron kan elke bindbare verzameling zijn, zoals een database, LINQ-query of een andere bindbare gegevensbron.
Onderdelen
Dit besturingselement definieert geen sjabloononderdelen.
Visuele statussen
De volgende tabel bevat de visuele statussen voor het DataGrid besturingselement.
| VisualState-naam | VisualStateGroup-naam | Beschrijving |
|---|---|---|
| Normaal | CommonStates | De bediening verkeert in normale staat. |
| Disabled | CommonStates | Het besturingselement is uitgeschakeld. |
| Geldig | Validatiestatussen | Het besturingselement is geldig en heeft geen validatiefouten. |
| Ongeldige focus | Validatiestatussen | Het besturingselement heeft een validatiefout en heeft de focus op het toetsenbord. |
| Ongeldige ongeconcentreerdheid | Validatiestatussen | Het besturingselement heeft een validatiefout, maar heeft geen toetsenbordfocus. |
DataGrid-elementtypen
Het DataGrid besturingselement bestaat uit verschillende elementtypen. Zie DataGrid Elements voor informatie over deze elementen en hun stijlen en sjablonen.
Zie ook
.NET Desktop feedback