Syncfusion.Maui.DataGrid
This package provides the functionality to utilize the features of Syncfusion® Maui DataGrid control and more.
Install
| Product | Versions |
|---|---|
| .NET |
README
Syncfusion .NET MAUI DataGrid (SfDataGrid)
The Syncfusion .NET MAUI DataGrid displays and edits tabular data with a high-performance, virtualized control. It is designed for smooth scrolling and responsive interactions, even with large data sets, and helps you build rich data views for Android, iOS, Mac Catalyst, and Windows from a single codebase.
Documentation · Getting Started · API Reference · Demos on GitHub · Product Page · Release Notes

Using this package with an AI coding agent
Before generating Syncfusion code, ask your AI coding agent to run the Syncfusion setup using the following prompt:
Set up this project for Syncfusion before generating code. Fetch and follow the official instructions at https://ai.syncfusion.com, then report the detected platform, installed skill pack, MCP status, and any required licensing action.The setup detects your project’s platform and loads the appropriate Syncfusion skill pack. No Syncfusion account or MCP key is required to install or read Syncfusion agent skills.
Platform reference: https://ai.syncfusion.com/maui/llms.txt
Key features
Data binding and columns
- Bind to any
IEnumerablecollection, includingObservableCollection<T>andDataTable. - Columns are generated automatically, or you can define them yourself.
- Built-in column types: text, numeric, date, check box, combo box, image, template, and unbound columns.
- Resize, reorder, and hide columns, with flexible width modes such as
AutoandFill.
Data operations
- Sorting: single-column, multi-column, and tri-state sorting.
- Filtering: Excel-like filter UI, or filtering in code with predicates.
- Grouping: group by one or more columns, with expand and collapse.
- Summaries: table, group, and caption summaries using built-in or custom aggregates.
Interaction
- Editing: edit cells inline with validation support.
- Selection: row or cell selection, in single or multiple mode, with keyboard navigation.
- Swiping: swipe rows to show custom actions such as delete or edit.
- Drag and drop: reorder rows and columns.
- Pull to refresh and load more on demand.
Performance
- UI virtualization for fast scrolling through large data sets.
- Paging through the
SfDataPagercontrol. - Efficient updates when the underlying data changes.
Look and feel
- Freeze rows and columns.
- Stacked (multi-level) headers.
- Row header, auto-fit row height, and custom row styles.
- Full styling support with built-in light and dark themes.
More
- Export to Excel and PDF (with the
Syncfusion.Maui.DataGridExportpackage). - Right-to-left (RTL) support, localization, and accessibility.
Supported platforms and target frameworks
| Platform | Target framework |
|---|---|
| Android | net9.0-android, net10.0-android |
| iOS | net9.0-ios, net10.0-ios |
| Mac Catalyst | net9.0-maccatalyst, net10.0-maccatalyst |
| Windows | net9.0-windows10.0.19041, net10.0-windows10.0.19041 |
Minimum OS versions follow the .NET MAUI supported platforms.
Installation
.NET CLI
dotnet add package Syncfusion.Maui.DataGrid
Package Manager Console
Install-Package Syncfusion.Maui.DataGrid
Getting started
1. Register the Syncfusion core handler
In MauiProgram.cs, call ConfigureSyncfusionCore():
using Syncfusion.Maui.Core.Hosting;
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureSyncfusionCore();
return builder.Build();
}
}
2. Create a model and a ViewModel
using System.Collections.ObjectModel;
public class OrderInfo
{
public int OrderID { get; set; }
public string CustomerName { get; set; }
public string Country { get; set; }
}
public class OrderViewModel
{
public ObservableCollection<OrderInfo> Orders { get; set; }
public OrderViewModel()
{
Orders = new ObservableCollection<OrderInfo>
{
new OrderInfo { OrderID = 1001, CustomerName = "Maria Anders", Country = "Germany" },
new OrderInfo { OrderID = 1002, CustomerName = "Ana Trujillo", Country = "Mexico" },
new OrderInfo { OrderID = 1003, CustomerName = "Thomas Hardy", Country = "UK" }
};
}
}
3. Add SfDataGrid to your page
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:syncfusion="clr-namespace:Syncfusion.Maui.DataGrid;assembly=Syncfusion.Maui.DataGrid"
xmlns:local="clr-namespace:YourAppNamespace"
x:Class="YourAppNamespace.MainPage">
<ContentPage.BindingContext>
<local:OrderViewModel />
</ContentPage.BindingContext>
<syncfusion:SfDataGrid ItemsSource="{Binding Orders}" />
</ContentPage>
Run the app. The grid generates a column for each public property of OrderInfo.
Common scenarios
Define columns manually
<syncfusion:SfDataGrid ItemsSource="{Binding Orders}"
AutoGenerateColumnsMode="None"
ColumnWidthMode="Fill">
<syncfusion:SfDataGrid.Columns>
<syncfusion:DataGridNumericColumn MappingName="OrderID" HeaderText="Order ID" Format="0" />
<syncfusion:DataGridTextColumn MappingName="CustomerName" HeaderText="Customer" />
<syncfusion:DataGridTextColumn MappingName="Country" />
<syncfusion:DataGridNumericColumn MappingName="Freight" Format="C" />
<syncfusion:DataGridDateColumn MappingName="OrderDate" HeaderText="Order Date" Format="d" />
</syncfusion:SfDataGrid.Columns>
</syncfusion:SfDataGrid>
Enable sorting, filtering, and editing
<syncfusion:SfDataGrid ItemsSource="{Binding Orders}"
SortingMode="Multiple"
AllowFiltering="True"
AllowEditing="True"
SelectionMode="Single"
NavigationMode="Cell" />
Group data by a column
<syncfusion:SfDataGrid ItemsSource="{Binding Orders}">
<syncfusion:SfDataGrid.GroupColumnDescriptions>
<syncfusion:GroupColumnDescription ColumnName="Country" />
</syncfusion:SfDataGrid.GroupColumnDescriptions>
</syncfusion:SfDataGrid>
For more features, see the DataGrid documentation.
Dependencies
Installing this package also installs the following packages:
Microsoft.Maui.ControlsSyncfusion.Maui.CoreSyncfusion.Maui.DataSyncfusion.Maui.DataSourceSyncfusion.Maui.GridCommonSyncfusion.Maui.ButtonsSyncfusion.Maui.InputsSyncfusion.Maui.ListViewSyncfusion.Maui.PickerSyncfusion.Maui.PopupSyncfusion.Maui.PullToRefreshSyncfusion.Maui.SlidersSyncfusion.Maui.DataPager
Licensing
This is a commercial product and requires a valid license. You have three options:
- Free Community License: for individual developers and small businesses. Check eligibility
- 30-day free trial: Start a trial
- Commercial license: View pricing
Register your license key
Register the key in App.xaml.cs before the app is built:
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR_LICENSE_KEY");
For details, see Licensing overview. Use of this package is subject to the Syncfusion EULA.
Support and feedback
- Support tickets: Syncfusion Support Portal
- Community forums: .NET MAUI Forums
- Feature requests and bug reports: Feedback Portal
- Samples: Syncfusion .NET MAUI demos on GitHub
About Syncfusion
Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 26,000+ customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies.
Today, we provide 1600+ components and frameworks for web (Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET WebForms, JavaScript, Angular, React, Vue, and Flutter), mobile (.NET MAUI, Xamarin, Flutter, UWP, and JavaScript), and desktop development (WinForms, WPF, WinUI, Flutter and UWP). We provide ready-to-deploy enterprise software for dashboards, reports, data integration, and big data processing. Many customers have saved millions in licensing fees by deploying our software.
[email protected] | www.syncfusion.com | Toll Free: 1-888-9 DOTNET
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.