Delen via


Overzicht van GridView

GridView weergavemodus is een van de weergavemodi voor een ListView besturingselement. Met de GridView klasse en de bijbehorende ondersteunende klassen kunnen u en uw gebruikers itemverzamelingen weergeven in een tabel die doorgaans knoppen gebruikt als interactieve kolomkoppen. In dit onderwerp wordt de GridView klas geïntroduceerd en wordt het gebruik ervan beschreven.

Wat is een GridView-weergave?

In de GridView weergavemodus wordt een lijst met gegevensitems weergegeven door gegevensvelden aan kolommen te binden en door een kolomkop weer te geven om het veld te identificeren. Met de standaardstijl GridView worden knoppen geïmplementeerd als kolomkoppen. Met behulp van knoppen voor kolomkoppen kunt u belangrijke mogelijkheden voor gebruikersinteractie implementeren; Gebruikers kunnen bijvoorbeeld op de kolomkop klikken om gegevens te sorteren GridView op basis van de inhoud van een specifieke kolom.

Opmerking

De knoppen die GridView gebruikt voor kolomkoppen zijn afgeleid van ButtonBase.

In de volgende afbeelding ziet u een GridView weergave van ListView inhoud.

Schermopname van de GridView-weergave van ListView-inhoud.

GridView kolommen worden vertegenwoordigd door GridViewColumn objecten, die automatisch de grootte van hun inhoud kunnen bepalen. U kunt desgewenst expliciet een GridViewColumn instellen op een specifieke breedte. U kunt het formaat van kolommen wijzigen door de greep tussen kolomkoppen te slepen. U kunt ook kolommen dynamisch toevoegen, verwijderen, vervangen en opnieuw ordenen, omdat deze functionaliteit is ingebouwd.GridView Echter, GridView kan de gegevens die het weergeeft niet rechtstreeks bijwerken.

In het volgende voorbeeld ziet u hoe u een GridView definitie definieert waarmee werknemersgegevens worden weergegeven. In dit voorbeeld definieert ListView het EmployeeInfoDataSource als ItemsSource. De eigenschapsdefinities van DisplayMemberBinding binden GridViewColumn aan EmployeeInfoDataSource gegevenscategorieën.


<ListView ItemsSource="{Binding Source={StaticResource EmployeeInfoDataSource}}">

    <ListView.View>

        <GridView AllowsColumnReorder="true" ColumnHeaderToolTip="Employee Information">

            <GridViewColumn DisplayMemberBinding="{Binding Path=FirstName}" Header="First Name" Width="100"/>

            <GridViewColumn DisplayMemberBinding="{Binding Path=LastName}" Width="100">
                <GridViewColumnHeader>Last Name
                    <GridViewColumnHeader.ContextMenu>
                        <ContextMenu MenuItem.Click="LastNameCM_Click" Name="LastNameCM">
                            <MenuItem Header="Ascending" />
                            <MenuItem Header="Descending" />
                        </ContextMenu>
                    </GridViewColumnHeader.ContextMenu>
                </GridViewColumnHeader>
            </GridViewColumn>

            <GridViewColumn DisplayMemberBinding="{Binding Path=EmployeeNumber}" Header="Employee No." Width="100"/>
        </GridView>

    </ListView.View>
</ListView>

In de volgende afbeelding ziet u de tabel die in het vorige voorbeeld is gemaakt. In het besturingselement GridView worden gegevens uit een ItemSource-object weergegeven:

Schermopname van een ListView met GridView-uitvoer.

GridView-indeling en -stijl

De kolomcellen en de kolomkop van een kolom GridViewColumn hebben dezelfde breedte. Standaard wordt de breedte van elke kolom aangepast aan de inhoud. U kunt desgewenst een kolom instellen op een vaste breedte.

Gerelateerde gegevensinhoud wordt weergegeven in horizontale rijen. In de vorige afbeelding worden bijvoorbeeld de achternaam, voornaam en id-nummer van elke werknemer weergegeven als een set omdat deze in een horizontale rij worden weergegeven.

Kolommen definiëren en stylen in een GridView

Wanneer u het gegevensveld definieert dat moet worden weergegeven in een GridViewColumn, gebruikt u de DisplayMemberBinding, CellTemplateof CellTemplateSelector eigenschappen. De DisplayMemberBinding eigenschap heeft voorrang op een van de sjablooneigenschappen.

Als u de uitlijning van inhoud in een kolom van een GridViewwilt opgeven, definieert u een CellTemplate. Gebruik de HorizontalContentAlignment en VerticalContentAlignment eigenschappen niet voor ListView inhoud die wordt weergegeven met behulp van een GridView.

Als u sjabloon- en stijleigenschappen voor kolomkoppen wilt opgeven, gebruikt u de GridView, GridViewColumnen GridViewColumnHeader klassen. Zie GridView Column Header Styles and Templates Overviewvoor meer informatie.

Visuele elementen toevoegen aan een GridView

Als u visuele elementen, zoals CheckBox en Button besturingselementen, wilt toevoegen aan een GridView weergavemodus, gebruikt u sjablonen of stijlen.

Als u een visueel element expliciet definieert als een gegevensitem, kan dit slechts één keer in een GridViewitem worden weergegeven. Deze beperking bestaat omdat een element slechts één bovenliggend element kan hebben en daarom slechts één keer in de visuele structuur kan worden weergegeven.

Rijen in een rasterweergave stylen

Gebruik de GridViewRowPresenter en GridViewHeaderRowPresenter klassen om de rijen van een GridViewbestand op te maken en weer te geven. Zie GridView voor een voorbeeld van het stylen van rijen in een weergavemodus.

Uitlijningsproblemen bij het gebruik van ItemContainerStyle

Als u uitlijningsproblemen tussen kolomkoppen en cellen wilt voorkomen, moet u geen eigenschap instellen of een sjabloon opgeven die van invloed is op de breedte van een item in een ItemContainerStyle. Stel bijvoorbeeld niet de eigenschap Margin in of specificeer een ControlTemplate die een CheckBox toevoegt aan een ItemContainerStyle controle die op een ListView is gedefinieerd. Geef in plaats daarvan de eigenschappen en sjablonen op die rechtstreeks van invloed zijn op de kolombreedte op klassen die een GridView weergavemodus definiëren.

Als u bijvoorbeeld een CheckBox waarde wilt toevoegen aan de rijen in GridView de weergavemodus, voegt u de CheckBox aan een DataTemplatetoe en stelt u de CellTemplate eigenschap vervolgens in op die DataTemplate.

Gebruikersinteracties met een GridView

Wanneer u een GridView in uw toepassing gebruikt, kunnen gebruikers de opmaak van de GridView bewerken en aanpassen. Gebruikers kunnen bijvoorbeeld de volgorde van kolommen wijzigen, het formaat van een kolom wijzigen, items in een tabel selecteren en door inhoud bladeren. U kunt ook een gebeurtenis-handler definiëren die reageert wanneer een gebruiker op de knop kolomkop klikt. De gebeurtenis-handler kan bewerkingen uitvoeren, zoals het sorteren van de gegevens die worden weergegeven in de GridView, volgens de inhoud van een kolom.

De volgende lijst bevat gedetailleerdere informatie over de mogelijkheden van het gebruik GridView voor gebruikersinteractie:

  • Kolommen opnieuw ordenen met behulp van de methode slepen en neerzetten.

    Gebruikers kunnen de volgorde van kolommen in een GridView kolom wijzigen door op de linkermuisknop te drukken terwijl deze zich boven een kolomkop bevindt en die kolom vervolgens naar een nieuwe positie te slepen. Terwijl de gebruiker de kolomkop sleept, wordt een zwevende versie van de koptekst weergegeven, evenals een ononderbroken zwarte lijn die laat zien waar de kolom moet worden ingevoegd.

    Als u de standaardstijl voor de zwevende versie van een koptekst wilt wijzigen, geeft u een ControlTemplate op voor een GridViewColumnHeader type dat wordt geactiveerd wanneer de Role eigenschap is ingesteld op Floating. Zie Create a Style for a Dragged GridView Column Header (Een stijl maken voor de kolomkop Draged GridView) voor meer informatie.

  • Pas de grootte van een kolom aan op basis van de inhoud.

    Gebruikers kunnen dubbelklikken op de greep rechts van een kolomkop om het formaat van een kolom aan te passen aan de inhoud.

    Opmerking

    U kunt de Width eigenschap instellen op Double.NaN om hetzelfde effect te verkrijgen.

  • Selecteer rijitems.

    Gebruikers kunnen een of meer items selecteren in een GridView.

    Zie Style u het geselecteerde item wilt wijzigen.

  • Schuif om inhoud weer te geven die in eerste instantie niet zichtbaar is op het scherm.

    Als de grootte van de GridView niet groot genoeg is om alle items weer te geven, kunnen gebruikers horizontaal of verticaal scrollen met behulp van schuifbalken, die worden aangeboden door een ScrollViewer module. A ScrollBar is verborgen als alle inhoud zichtbaar is in een specifieke richting. Kolomkoppen schuiven niet met een verticale schuifbalk, maar schuiven horizontaal.

  • Interactie met kolommen door op de knoppen voor de kolomkop te klikken.

    Wanneer gebruikers op een kolomkopknop klikken, kunnen ze de gegevens sorteren die in de kolom worden weergegeven als u een sorteeralgoritmen hebt opgegeven.

    U kunt de Click gebeurtenis voor kolomkopknoppen afhandelen om functionaliteit te bieden zoals een sorteeralgoritmen. Als u de Click gebeurtenis voor één kolomkop wilt afhandelen, stelt u een gebeurtenis-handler in op de GridViewColumnHeader. Als u een gebeurtenis-handler wilt instellen die de Click gebeurtenis voor alle kolomkoppen verwerkt, stelt u de handler in op het ListView besturingselement.

Andere aangepaste weergaven verkrijgen

De GridView klasse, die is afgeleid van de ViewBase abstracte klasse, is slechts een van de mogelijke weergavemodi voor de ListView klasse. U kunt andere aangepaste weergaven ListView maken door deze af te leiden van de ViewBase klasse. Zie Een aangepaste weergavemodus maken voor een ListView voor een voorbeeld van een aangepaste weergavemodus.

GridView-ondersteunende klassen

De volgende klassen ondersteunen de GridView weergavemodus.

Zie ook