We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Trusted by the world’s leading companies

Syncfusion Trusted Companies

Overview

The WPF DataGrid control is used for efficiently displaying and manipulating tabular data. Its rich feature set includes functionalities like data binding, editing, sorting, filtering, grouping, and exporting to Excel and PDF file formats. It has also been optimized for working with millions of records, as well as handling high-frequency, real-time updates.


High Performance

The WPF DataGrid loads millions of records in just a second without any performance degradation with the help of row and column virtualization.

High Performance WPF DataGrid

Instant loading

The WPF DataGrid can load millions of records instantly.

High Performance WPF DataGrid

Fast data processing

Data processing operations like sorting, filtering, grouping, summarizing, and real-time updating are handled efficiently using PLINQ.

WPF DataGrid Printing

Quickly print and export the WPF DataGrid to Excel, CSV, and PDF file formats.


Data binding

The WPF DataGrid has data-binding support to work out of the box with all popular data sources like SQL Server, Oracle, data tables, and IEnumerable, and data providers like LINQ to SQL, ADO.NET, Entity Framework, and WCF Data Service.

Data Binding in WPF DataGrid


Seamless editing experience

  • 15+ built-in column types such as combo box, date-time, and multicolumn drop-down.
  • Embed any control, such as a progress bar or rating, to view or edit the data in a cell.
  • Commit or rollback changes when the data object implements IEditableObject.
  • Add new records dynamically.

WPF DataGrid Editing


Data Validation in WPF DataGrid

Built-in data error indication and validation

Validate cells and display error information based on the following validation types:

Also, it’s possible to use:

  • Cell validation
  • Row validation
  • Custom validation

Data operations

Multi-column Sorting in WPF DataGrid

Sorting

Sort data against one or more columns with multiple customization operations. You can also sort by caption summary values when the grid is grouped or by writing custom logic.

WPF DataGrid Grouping

Grouping

Group data by one or more columns either through mouse and touch interactivity in the group drop area or in code behind. Or, you can group data with custom logic.

Filtering WPF DataGrid like in Excel

Filter

Filter data with the row filter or an intuitive, built-in, Excel-inspired filtering UI.

WPF DataGrid with Summary Rows

Summaries

Calculate and display sum, minimum, maximum, average, count, and custom aggregates in a table or group. Calculate summaries for selected records. Display summaries with different summary types, such as:

  • Total or table summary
  • Group summary
  • Summary in group caption or header
  • Custom summary

Data manipulation

Real-time updates in WPF DataGrid

Real-time updates

The WPF DataGrid control can handle high-frequency updates even under the most demanding scenarios where the data is sorted and grouped in real-time. The summaries are calculated in an optimized way and the updated summaries are displayed in real-time scenarios.

WPF DataGrid - Add New Row

Built-in add new row

Add a new record in an underlying collection with a built-in row. Place the added new row at the top or bottom or stick it at the top. It’s also possible to place a newly added row at the top or bottom in a DataGrid.

WPF DataGrid - Delete Row

Delete row

Delete selected records in a WPF DataGrid by pressing the Delete key. You can change it to another key instead of the default, too.

WPF DataGrid Search

Search and highlight text in the WPF DataGrid and filter records based on the search text.


Selection

Select rows or cells in a similar way to Excel for all keyboard navigations.

Selection in WPF DataGrid


Conditional Styling in WPF DataGrid

Conditional formatting

Customize the appearance of cells, rows, or columns based on data.


Row and column customization

Auto-Fit Row Height in WPF DataGrid

Row height

Users can adjust (auto fit) the row height based on the content of any column or certain columns to enhance the readability of content. It’s also possible to set the row height conditionally.

WPF DataGrid with Freeze Panes

Freeze panes

Users can freeze rows and columns at the top, bottom, left, and right positions, similar to in Excel. Horizontal and vertical scrolling can be performed, except on fixed columns and rows.

WPF DataGrid with Unbound Column

Unbound column

Display additional columns that are not bound to data. The control supports an expression to calculate values among columns.

WPF DataGrid with Unbound Rows

Unbound row

Display rows at the top and bottom of the grid with data that is not bound to the ItemsSource.

WPF DataGrid - Merge Cells

Cell merging

Dynamically merge data in adjacent cells and present that data in a single cell. Merge data based on content by writing your own custom logic.

WPF DataGrid with Stacked Header Rows

Stacked headers

Stacked headers (multiple header rows) allow users to show unbound header rows. They span the stacked header columns across multiple rows and columns.


Column auto sizing

The WPF DataGrid provides auto-sizing options like auto-fit columns based on content, fit all columns within a view port, fill the last column to view port size, etc.


Master-details view

A master-details view (nested grid view) can be represented through nested grids that can be expanded and collapsed. Functionalities like editing, sorting, filtering, and grouping are supported. Unlimited levels of nested grid relationships are allowed.

WPF DataGrid - Master Details View


WPF DataGrid - Row Details View

Record template view

Display the additional information of a row using a template. View the record template by expanding and collapsing the record as required.


Data virtualization

Create records on demand by automatically enabling data virtualization. Load millions of records of data instantly with virtualization enabled.


Incremental loading

Load data while horizontally scrolling (on-demand data loading). This is supported when the ItemsSource is derived from the ISupportIncrementalLoading interface.

On-demand data loading in WPF DataGrid


Data Paging in WPF DataGrid

Paging

Manipulate data using the DataPager control to view records in multiple pages. DataPager also supports on-demand loading of data.


Appearance style

The appearance of a data grid and its inner elements, such as rows, cells, columns, headers, and summary rows, can be customized easily using styles and templates.

WPF DataGrid Styling


WPF DataGrid Reorder Rows

Row drag and drop

Drag and drop rows within WPF DataGrid or between controls.


Column chooser

Users can change the visibility of columns at runtime using the customizable column chooser UI. 

WPF DataGrid with Column Chooser


WPF DataGrid with Context Menu

Context menu

The WPF DataGrid control provides an entirely custom context menu to expose the functionality on the user interface. Users can create context menus for different rows such as a record row, summary row, and group caption header in an efficient manner.


Clipboard operations

Perform clipboard operations such as cut, copy, and paste within a control and between other applications such as Notepad or Excel.


Tooltip

Tooltips display additional information in a pop-up window when the pointer hovers over cells in the DataGrid.

WPF DataGrid Tooltip


WPF DataGrid Themes

Themes

Choose from 27 built-in themes using the SfSkinManager for a rich user interface. Easily customize all aspects of the DataGrid appearance using the Theme Studio utility.


Exporting

WPF DataGrid to Excel and PDF

Excel, PDF, CSV export

Easily export the WPF DataGrid control to various file formats such as Excel, PDF, or CSV.

WPF DataGrid Printing

Print

Print the DataGrid with several printing customization options.


Serialization

Serialize the WPF DataGrid settings to XML format and load back (deserialization) to a data grid using the built-in serialization options.


Localization

WPF DataGrid Localization

Localization

Localize all the static, default strings in the WPF DataGrid to any supported language.

Right to Left in WPF DataGrid

Right to left (RTL)

DataGrid supports right-to-left (RTL) rendering for users working in right-to-left languages like Hebrew, Arabic, or Persian.


UI Automation

The WPF DataGrid control is compatible with Coded UI and UFT (formerly QTP) automation tools to automate an application with the DataGrid control.

UI automation illustration for WPF DataGrid


Gridlines Customization

The WPF DataGrid allows you to customize the gridline visibility with the following options:


WPF DataGrid Code Example

Easily get started with the WPF DataGrid using a few simple lines of XAML or C# code example as demonstrated below. Also explore our WPF DataGrid Example that shows you how to render and configure the data grid.

<Window x:Class="SfDataGridSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
        xmlns:local="clr-namespace:SfDataGridSample"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="MainWindow" Height="450" Width="800">
    <Window.DataContext>
        <local:ViewModel/>
    </Window.DataContext>
    <Grid>
        <syncfusion:SfDataGrid x:Name="dataGrid"  
                       ItemsSource="{Binding Orders}" 
                       AutoGenerateColumns="True"/>
    </Grid>
</Window>
namespace SfDataGridSample
{
    public class OrderInfo
    {
        int orderID;
        string customerId;
        string country;
        string customerName;
        string shippingCity;

        public int OrderID
        {
            get { return orderID; }
            set { orderID = value; }
        }

        public string CustomerID
        {
            get { return customerId; }
            set { customerId = value; }
        }

        public string CustomerName
        {
            get { return customerName; }
            set { customerName = value; }
        }

        public string Country
        {
            get { return country; }
            set { country = value; }
        }

        public string ShipCity
        {
            get { return shippingCity; }
            set { shippingCity = value; }
        }

        public OrderInfo(int orderId, string customerName, string country, string customerId, string shipCity)
        {
            this.OrderID = orderId;
            this.CustomerName = customerName;
            this.Country = country;
            this.CustomerID = customerId;
            this.ShipCity = shipCity;
        }
    }
    public class ViewModel
    {
        private ObservableCollection<OrderInfo> _orders;
        public ObservableCollection<OrderInfo> Orders
        {
            get { return _orders; }
            set { _orders = value; }
        }

        public ViewModel()
        {
            _orders = new ObservableCollection<OrderInfo>();
            this.GenerateOrders();
        }

        private void GenerateOrders()
        {
            _orders.Add(new OrderInfo(1001, "Maria Anders", "Germany", "ALFKI", "Berlin"));
            _orders.Add(new OrderInfo(1002, "Ana Trujilo", "Mexico", "ANATR", "Mexico D.F."));
            _orders.Add(new OrderInfo(1003, "Antonio Moreno", "Mexico", "ANTON", "Mexico D.F."));
            _orders.Add(new OrderInfo(1004, "Thomas Hardy", "UK", "AROUT", "London"));
            _orders.Add(new OrderInfo(1005, "Christina Berglund", "Sweden", "BERGS", "Lula"));
        }
    }
}



95+ WPF CONTROLS

Frequently Asked Questions

The Syncfusion WPF DataGrid supports the following features:

  • Loads millions of records in just a second.
  • Flexible data binding with support to use data sources such as WCF, ADO.NET, LINQ to SQL and Microsoft Access.
  • Rich UI interaction and keyboard navigation to interact with the software.
  • Packed with a bunch of features with customization options suitable for building complex, large-scale applications.
  • One of the best WPF DataGrid in the market that offers feature-rich UI to interact with the software.
  • Simple configuration and API.
  • Touch friendly and responsive.
  • Extensive demos, documentation to learn quickly and get started with WPF DataGrid.

You can find our WPF DataGrid demo on

GitHub location.

App center location.

Microsoft location.

No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue, 5 or fewer developers, and 10 or fewer total employees.

A good place to start would be our comprehensive getting started documentation.

Our Customers Love Us

Having an excellent set of tools and a great support team, Syncfusion reduces customers’ development time.
Here are some of their experiences.

Rated by users across the globe

Transform your applications today by downloading our free evaluation version Download Free Trial

Syncfusion WPF Resources

Awards

Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion is proud to hold the following industry awards.

Up arrow icon
Live Chat Icon For mobile