Unplanned
Last Updated: 02 Oct 2024 12:41 by ADMIN

Issue description:

When the grid contains, after filtering out ,no rows the "Empty template" is not used/displayed.

Tested on Windows,  with "Telerik_UI_for_dot_NET_Maui_7_1_0_Dev\Examples\ControlsSamples", Example "Empty Template".

Steps to reproduce:

  1. Open example  "Empty Template"
  2. In "Configuration" set "Items source" to "Non-empty collection"
  3. Set filter in "Order Id" to "Is equal to" = 999

Expected behavior:

Display/Use "Empty template" when there are no visible records.

...or to make it more consistent with the current implementation - add new option "ItemsSourceNullOrEmptyOrFilteredOut" to the enum "EmptyContentDisplayMode":


namespace Telerik.Maui.Controls;
//
// Summary:
//     Defines the modes for displaying empty content.
public enum EmptyContentDisplayMode
{
    //
    // Summary:
    //     Displays the empty content view only when the ItemsSource is null.
    ItemsSourceNull,

    //
    // Summary:
    //     Displays the empty content view when ItemsSource is null or when the source is
    //     empty (has zero items).
    ItemsSourceNullOrEmpty,
    
+    //
+    // Summary:
+    //     Displays the empty content view when ItemsSource is null or when the source is
+    //     empty (has zero items) or when all items are filtered out. (either by filter or by search)
+    ItemsSourceNullOrEmptyOrFilteredOut
}    


Best regards,

Peter

Completed
Last Updated: 03 Jun 2025 13:50 by ADMIN
Release 11.0.0 (2025 Q2)
Created by: Rich
Comments: 1
Category: DataGrid
Type: Feature Request
1
In the current DataGrid implementation, the DataGrid will start with all the groups expanded. The only way to have any form of preference is to programmatically interact with the DataView after data is presented in the control  https://docs.telerik.com/devtools/maui/controls/datagrid/grouping/expand-collapse 

Requested Feature
A better approach that I am requesting a feature for is to have a property available for the DataGrid that sets this value ahead of time.

For example, you could add it as a BindableProperty on the GroupDescriptor class and on the GroupDefinition is to have an IsExapanded property.
Unplanned
Last Updated: 14 Feb 2025 12:28 by Teddy
Created by: Teddy
Comments: 0
Category: DataGrid
Type: Bug Report
1

For example we have set RowHeight to 26 with GridLineThickness = 1, GridLinesVisibility = Horizontal, and RowBackgroundStyle and AlternateRowBackgroundStyle with BorderThickness = 0.

The first row is 26px, the middle rows are 25px and the last row is 24px. So it seems the grid lines are included in the calculation of the RowHeight. 

Unplanned
Last Updated: 19 Feb 2025 10:17 by Chris

I want to strikethrough the text in  the row based on a value. 

i checked and the column cell content style DataGridTextCellAppearance class does not expose such property.

Completed
Last Updated: 21 May 2025 08:08 by ADMIN
Release 11.0.0 (2025 Q2)

Begin editing the first cell firs column
Without closing the cell editor, scroll down to the last cell, the first cell should exit the viewport.
Start editing the last cell.
Scroll back up to the first cell

The content inside the first cell is missing.

The content should be there.

Unplanned
Last Updated: 28 Mar 2025 08:12 by Hanoch

When using ImageButton inside a CellTemplate, the image does not display initially. When you resize the window image is displayed. 

 

Workaround:

Use Image instead of ImageButton

 

Declined
Last Updated: 29 May 2025 16:44 by Teddy
If the data you want to group by is not set by the time the data grid's ItemsSource is set, then the grouping doesn't work as expected. Everything gets into a single group called (blank)
In Development
Last Updated: 17 Oct 2025 08:21 by ADMIN

Delegate aggregate descriptor does not update value in the UI when adding/removing item.

The behavior also happens with the property aggregate descriptor.

Completed
Last Updated: 09 Jul 2025 12:43 by ADMIN
Release 11.0.1
An ArgumentException is thrown in the DataGrid when updating a property that exists only on a derived type of an object used in the grid's data source. This occurs specifically when a DelegateAggregateDescriptor is applied to a column.
Completed
Last Updated: 13 Aug 2025 07:40 by ADMIN
Release 11.1.0 (2025 Q3)

A NullReferenceException is thrown during the measure phase of a DataGridTextColumn when a CellRenderer is applied:

Object reference not set to an instance of an object.
   at Telerik.Maui.Controls.DataGrid.DataGridColumn.MeasureDrawingPaintable(LambdaPaintable lambdaPaintable, Object measureContext)
   at Telerik.Maui.Controls.SkiaSharp.SkiaLambdaPainter.Measure(MeasureablePaintable paintable, PurePainterContext context, Double widthConstraint, Double heightConstraint)
   at Telerik.Maui.Controls.DataGrid.MasterArranger.MeasureNodeContainer(Object container, Double widthConstraint)
   at Telerik.Maui.Controls.DataGrid.MasterArranger.MeasureNodeContainer(Object container, Double widthConstraint)
   at Telerik.Maui.Controls.DataGrid.MasterArranger.MeasureGridCellModel(GridCellModel model)
   at Telerik.Maui.Controls.DataGrid.CellModelGenerator.GetSize(GridCellModel decorator)
   at Telerik.Maui.Controls.DataGrid.CellsController`1.GenerateCellsForRow(IItemInfoNode rowModel, Int32 rowSlot)
   at Telerik.Maui.Controls.DataGrid.NodePool`2.GenerateModelsForInfos(IList`1 itemInfos, ModelGenerationContext modelGenerationContext, MeasureContext measureContext)
   at Telerik.Maui.Controls.DataGrid.NodePool`2.MeasureForward(MeasureContext& context)
   at Telerik.Maui.Controls.DataGrid.NodePool`2.MeasureVertically(RadSize availableSize, Double offset, Double verticalBuffer)
   at Telerik.Maui.Controls.DataGrid.NodePool`2.OnMeasure(RadSize availableSize, Double offset, Double verticalBuffer)
   at Telerik.Maui.Controls.DataGrid.GridModel.MeasureCells(RadSize availableSize)
   at Telerik.Maui.Controls.DataGrid.DataGridContentLayout.Measure(Double widthConstraint, Double heightConstraint)
   at Microsoft.Maui.Platform.MauiPanel.MeasureOverride(Size availableSize)
   at ABI.Microsoft.UI.Xaml.IFrameworkElementOverrides.Do_Abi_MeasureOverride_0(IntPtr thisPtr, Size availableSize, Size* result)
In Development
Last Updated: 16 Oct 2025 10:55 by ADMIN
Created by: Chris
Comments: 1
Category: DataGrid
Type: Feature Request
1

Currently, i can use the public method ScrollItemIntoView to scroll to an item in the DataGrid. 

I noticed you have an internal method: ScrollColumnIntoView. Please make it public so I can use it to scroll to a specific column.

Completed
Last Updated: 13 Aug 2025 07:40 by ADMIN
Release 11.1.0 (2025 Q3)

When setting GroupAggregatesAlignment NextToHeader and the column size mode is stretch or auto, the aggregates text in the group header is misaligned, part of the text enters in next column when data changes.

When the control is scrolled, some cell is edited or some other operation is applied, the text is displayed as expected.

Unplanned
Last Updated: 14 Aug 2025 11:27 by Jack
The bug occurs when dynamically swapping the content of a RadNavigationView in a .NET MAUI application on Windows: if you replace the content with a new instance of a complex control like RadDataGrid (e.g., by setting navigationView.Content = new SampleContentView() in response to navigation or button clicks), the grid may not render or appear at all. This issue does not affect Android or other platforms and is caused by the Windows platform's failure to properly re-measure and re-render the visual tree when the navigation view's content is replaced at runtime, especially with third-party controls.
Unplanned
Last Updated: 02 Sep 2025 12:47 by Rahul
when scrolling through the datagrid horizontally using the scrollbar flashing and missing text and column header occurs. 
Unplanned
Last Updated: 03 Sep 2025 11:57 by Teddy
Created by: Teddy
Comments: 0
Category: DataGrid
Type: Feature Request
1
instead of using the footer template, expose cell renderer approach for the column footer
Unplanned
Last Updated: 17 Sep 2025 14:58 by Teddy

When the cells are measured a NullReferenceException is thrown:

Telerik.Maui.Controls.DataGrid.DataGridTextCellArranger.PrepareTextPaintable(GridCellModel model, TextPaintable textPaintable)
Telerik.Maui.Controls.DataGrid.DataGridTextCellArranger.PrepareContainerForItemOverride(GridCellModel model)
Telerik.Maui.Controls.DataGrid.DataGridCellArranger.PrepareContainerForItem(GridCellModel model)
Telerik.Maui.Controls.DataGrid.DataGridColumn.IDataGridColumnDefinition.PrepareContainerForItem(GridCellModel model)
Telerik.Maui.Controls.DataGrid.CellModelGenerator.PrepareModelForItem(GridCellModel decorator)
Telerik.Maui.Controls.DataGrid.CellsController<GridCellModel>.GenerateCellsForRow(IItemInfoNode rowModel, Int32 rowSlot)
Telerik.Maui.Controls.DataGrid.GridModel.ITable.GenerateCellsForRow(Int32 rowSlot, Double largestRowElementHeight, IItemInfoNode rowDecorator, Boolean isFrozen)
Telerik.Maui.Controls.DataGrid.NodePool<GridRowModel, RowGenerationContext>.GenerateCellsForLine(Int32 slot, Double largestLength, GridRowModel lastElement)
Telerik.Maui.Controls.DataGrid.NodePool<GridRowModel, RowGenerationContext>.GenerateModelsForInfos(IList<> itemInfos, ModelGenerationContext modelGenerationContext, MeasureContext measureContext)
Telerik.Maui.Controls.DataGrid.NodePool<GridRowModel, RowGenerationContext>.MeasureForward(MeasureContext& context)
Telerik.Maui.Controls.DataGrid.NodePool<GridRowModel, RowGenerationContext>.MeasureVertically(RadSize availableSize, Double offset, Double verticalBuffer)
Telerik.Maui.Controls.DataGrid.NodePool<GridRowModel, RowGenerationContext>.OnMeasure(RadSize availableSize, Double offset, Double verticalBuffer)
Telerik.Maui.Controls.DataGrid.GridModel.MeasureFrozenCells(RadSize availableSize)
Telerik.Maui.Controls.DataGrid.DataGridContentLayout.Measure(Double widthConstraint, Double heightConstraint)
Telerik.Maui.Controls.RadLayoutManager.Measure(Double widthConstraint, Double heightConstraint)
Microsoft.Maui.Controls.Layout.CrossPlatformMeasure(Double widthConstraint, Double heightConstraint)
Microsoft.Maui.Platform.MauiView.CrossPlatformMeasure(Double widthConstraint, Double heightConstraint)
Microsoft.Maui.Platform.MauiView.SizeThatFits(CGSize size)
Telerik.Maui.ScrollView.ScrollViewContent.TryGetDesiredSize(UIView view, CGSize availableSize)
Telerik.Maui.ScrollView.ScrollViewContent.SizeThatFits(CGSize size)
Telerik.Maui.ScrollView.ScrollViewContent.ValidateMeasure()
Telerik.Maui.ScrollView.ScrollViewContent.LayoutSubviews()
Telerik.Maui.ScrollView.ScrollViewContent.__Registrar_Callbacks__.callback_1209_Telerik_Maui_ScrollView_ScrollViewContent_LayoutSubviews(IntPtr pobj, IntPtr sel, IntPtr* exception_gchandle)
--- End of stack trace from previous location ---
Completed
Last Updated: 07 Jun 2023 07:41 by ADMIN
Release 5.2.0

Having this setup:

<telerikDataGrid:DataGridTemplateColumn HeaderText="Age" 
                                        CanUserSort="True">
    <telerikDataGrid:DataGridTemplateColumn.CellContentTemplate>
        <DataTemplate>
            <Label Text="{Binding Age}" />
        </DataTemplate>
    </telerikDataGrid:DataGridTemplateColumn.CellContentTemplate>
    <telerikDataGrid:DataGridTemplateColumn.SortDescriptor>
        <telerikCommon:PropertySortDescriptor PropertyName="Age" SortOrder="Descending" />
    </telerikDataGrid:DataGridTemplateColumn.SortDescriptor>
</telerikDataGrid:DataGridTemplateColumn>

 

When applying SortDescriptor to the Template column, the column is not initially sorted. 

Declined
Last Updated: 19 Jul 2022 13:48 by ADMIN
Created by: ben
Comments: 6
Category: DataGrid
Type: Feature Request
0

I have been trying to get the DataGrid to work with Maui.Markup and I'm not finding a way to add a DataGrid to my View.

i.e. from GitHub - CommunityToolkit/Maui.Markup: The .NET MAUI Markup Community Toolkit is a community-created library that contains Fluent C# Extension Methods to easily create your User Interface in C#

I would have expected I could add a DataGrid to the Children of Grid...but I'm not finding the right cast to allow that to happen, Grid.Children is expecting an IView.

Is this possible and I'm just missing something simple?  Thanks!

Completed
Last Updated: 15 Sep 2022 13:23 by ADMIN
Release 3.0.0
Created by: Anurag
Comments: 1
Category: DataGrid
Type: Feature Request
0
Summation like (Total, Avg..) of Columns
Completed
Last Updated: 14 Sep 2022 10:08 by ADMIN
Release 3.0.0

I am using NavigationPages and Dependency Injection (for the Pages and ViewModels) to navigate (not AppShell).

    <Grid RowDefinitions="*,100">

        <telerik:RadDataGrid x:Name="grdRegisters"
                             RowHeight="50"
                             Style="{StaticResource ReadOnlyGridStyle}"
                             ItemsSource="{Binding Registers}"
                             SelectionStyle="{StaticResource SelectedRowBackgroundStyle}"
                             RowBackgroundStyle="{StaticResource RowBackgroundStyle}"
                             AlternateRowBackgroundStyle="{StaticResource AltRowBackgroundStyle}"
                             SelectedItem="{Binding SelectedRegister, Mode=TwoWay}">
            <telerik:RadDataGrid.Columns>
                <telerik:DataGridTemplateColumn HeaderText=""
                                                SizeMode="Fixed"
                                                Width="50">
                    <telerik:DataGridTemplateColumn.CellContentTemplate>
                        <DataTemplate x:DataType="RegisterModel">
                            <Label FontFamily="FASolid" 
                                   HorizontalOptions="Center"
                                   VerticalOptions="Center"
                                   Text="&#xf005;" 
                                   IsVisible="{Binding IsCurrentRegister, Mode=OneTime}"/>
                        </DataTemplate>
                    </telerik:DataGridTemplateColumn.CellContentTemplate>
                </telerik:DataGridTemplateColumn>

                <telerik:DataGridTemplateColumn HeaderText="Shift Date">
                    <telerik:DataGridTemplateColumn.CellContentTemplate>
                        <DataTemplate x:DataType="RegisterModel">
                            <Label Style="{StaticResource GridCellLabelStyle}" 
                                   Text="{Binding Date, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:d}'}"/>
                        </DataTemplate>
                    </telerik:DataGridTemplateColumn.CellContentTemplate>
                </telerik:DataGridTemplateColumn>

                <telerik:DataGridTemplateColumn HeaderText="Shift Name">
                    <telerik:DataGridTemplateColumn.CellContentTemplate>
                        <DataTemplate x:DataType="RegisterModel">
                            <Label Style="{StaticResource GridCellLabelStyle}" 
                                   Text="{Binding Shift.Name}"/>
                        </DataTemplate>
                    </telerik:DataGridTemplateColumn.CellContentTemplate>
                </telerik:DataGridTemplateColumn>

                <telerik:DataGridTemplateColumn HeaderText="Start Time">
                    <telerik:DataGridTemplateColumn.CellContentTemplate>
                        <DataTemplate x:DataType="RegisterModel">
                            <Label Style="{StaticResource GridCellLabelStyle}" 
                                   Text="{Binding StartTime, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:t}'}"/>
                        </DataTemplate>
                    </telerik:DataGridTemplateColumn.CellContentTemplate>
                </telerik:DataGridTemplateColumn>

                <telerik:DataGridTemplateColumn HeaderText="End Time">
                    <telerik:DataGridTemplateColumn.CellContentTemplate>
                        <DataTemplate x:DataType="RegisterModel">
                            <Label Style="{StaticResource GridCellLabelStyle}" 
                                   Text="{Binding EndTime, Converter={StaticResource ToLocalTimeConverter}, StringFormat='{}{0:t}'}"/>
                        </DataTemplate>
                    </telerik:DataGridTemplateColumn.CellContentTemplate>
                </telerik:DataGridTemplateColumn>


            </telerik:RadDataGrid.Columns>
        </telerik:RadDataGrid>

        <HorizontalStackLayout Grid.Row="1">
            <Button Text="Resume"
                    IsEnabled="{Binding SelectedRegister, Converter={StaticResource IsNotNullConverter}}"
                    Command="{Binding ResumeShiftCommand}"/>

            <Button Text="Refresh"
                    Command="{Binding RefreshCommand}"/>

        </HorizontalStackLayout>
        
    </Grid>

On initial Refresh, all items are visible in the DataGrid

I navigate forward and then back (PopToRoot), the DataGrid appears empty, although the vertical scroll appears like there are items.

If I tap Refresh, items become visible, but only above the first fold.

If i resize the window vertically, items will appear and disappear depending on the height of the window. (see attached video)