New to Telerik UI for .NET MAUI? Start a free 30-day trial

.NET MAUI DataGrid Column Headers

This article will guide you through the usage of the column headers, their customization as well through performing different data operations. Column headers are always visible by default. You can further customize the headers by using the HeaderStyle property.

DataGrid Column Header

Changing the Text in the Header

To customize text inside the header you have to use the HeaderText property. The property is per column. If HeaderText is not set, the text inside the PropertyName is displayed.

<telerik:RadDataGrid x:Name="dataGrid" 
                     AutoGenerateColumns="False">
    <telerik:RadDataGrid.Columns>
        <telerik:DataGridTextColumn PropertyName="Capital" 
                                    HeaderText="Capital Header"/>
        <telerik:DataGridTextColumn PropertyName="Country" 
                                    HeaderText="Country Header"/>
    </telerik:RadDataGrid.Columns>
</telerik:RadDataGrid>

Sorting

The user of the application can sort a particular column when tapping on its header. When the data is sorted by a column, the sort indicator shows in the header.

.NET MAUI DataGrid Column Header Sorting indicator

To learn more about the sorting functionality of the .NET MAUI DataGrid take a look at the Sorting article.

Filtering

The header of the column hosts the built-in filtering mechanism (the filter indicator which opens the Filtering UI), which allows the user to filter the data by the columns' values.

.NET MAUI DataGrid Column Header filter indicator

To learn more about the filtering functionality take a look at the Filtering article.

Styling

Use the HeaderStyle property to style the DataGridColumn header.

Check the .NET MAUI DataGrid Column Header Styling topic for more information about the styling options you can use.

For more details how to hide the column headers from the DataGrid visualization, review the following article: How to Hide Column Headers in a DataGrid for MAUI.

Header Content Customization

You can customize the content of the Header using the HeaderContentTemplate(DataTemplate) property.

Define the DataTemplate for the header:

<DataTemplate x:Key="CapitalColumnHeaderTemplate">
    <HorizontalStackLayout Margin="4, 0" HeightRequest="30">
        <Image Source="rating.png" HeightRequest="16" />
        <Label Text="Capital"
               HorizontalOptions="Center"
               VerticalOptions="Center"
               Margin="4, 0, 0, 0" />
    </HorizontalStackLayout>
</DataTemplate>
<DataTemplate x:Key="CountryColumnHeaderTemplate">
    <HorizontalStackLayout Margin="4, 0" HeightRequest="30">
        <Image Source="map.png" HeightRequest="16" />
        <Label Text="Country"
               HorizontalOptions="Center"
               VerticalOptions="Center"
               Margin="4, 0, 0, 0" />
    </HorizontalStackLayout>
</DataTemplate>

Define the HeaderContentTemplate in the DataGrid column:

<telerik:RadDataGrid x:Name="dataGrid"
                     ShowColumnFooters="True"
                     AutoGenerateColumns="False"
                     BorderBrush="{OnPlatform WinUI=#F1F1F1}"
                     BorderThickness="{OnPlatform Default=1, Android=0}">
    <telerik:RadDataGrid.Columns>
        <telerik:DataGridTextColumn PropertyName="Capital"
                                    HeaderStyle="{StaticResource CustomColumnHeaderStyle}"
                                    HeaderContentTemplate="{StaticResource CapitalColumnHeaderTemplate}"
                                    FooterContentTemplate="{StaticResource CapitalColumnFooterTemplate}" />
        <telerik:DataGridTextColumn PropertyName="Country"
                                    HeaderStyle="{StaticResource CustomColumnHeaderStyle}"
                                    HeaderContentTemplate="{StaticResource CountryColumnHeaderTemplate}"
                                    FooterContentTemplate="{StaticResource CountryColumnFooterTemplate}" />
    </telerik:RadDataGrid.Columns>
</telerik:RadDataGrid>

.NET MAUI DataGrid Column Header Template

Color on Hover

You can change the hover state background color of the column header by setting the BackgroundColor property.

The following example demonstrates how to apply the BackgroundColor property to the DataGrid HeaderContentTemplate for its hover visual state:

  <DataTemplate x:Key="CustomHeaderTemplate">
            <telerik:RadBorder BackgroundColor="#F8F8F8"
                               BorderThickness="1">
                <VisualStateManager.VisualStateGroups>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState x:Name="Normal" />
                        <VisualState x:Name="Focused" />
                        <VisualState x:Name="Disabled" />
                        <VisualState x:Name="PointerOver">
                            <VisualState.Setters>
                                <Setter Property="BackgroundColor" Value="#33000000" />
                            </VisualState.Setters>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateManager.VisualStateGroups>
            </telerik:RadBorder>
    </DataTemplate>

This is the result:

DataGrid Header Column Background Color

Customize the Column

Customize the column header by using the HeaderContentTemplate(of type DataTemplate) to achieve the desired full customization of the column. The property demonstrates the ability of the DataGrid to specify and show custom appearance for the column headers.

See Also

In this article