A newer version of this page is available. Switch to the current version.

Data Grid

  • 10 minutes to read

Learn the Basics

The GridControl (GridControl) is a powerful editing and data shaping component for end-users to display and manage large amounts of data. The GridControl features specific data binding modes designed to work with large amounts of data keeping user interfaces always responsive. The GridControl enables a flexible UI with a wide-variety of views, including the Tree List View and Card View. It also features highly intuitive data shaping capabilities, including sorting, grouping, and summary calculation, and a rich set of filtering options such as the Filter Panel and Auto-Filter Row.

  • Getting Started

    A set of tutorials that will allow you to quickly get started with the GridControl.

  • Visual Elements

    This section lists visual elements available in the GridControl and in Views. The topics are categorized into groups that contain descriptions of elements belonging to a particular View or relating to a specific feature.

  • Examples

    Contains a large variety of task-based examples.

Binding to Data

To display data within the GridControl, you first need to bind it to the required data source. The following data source technologies are supported.

  • ADO.NET data sets
  • SQL data
  • Entity Framework data
  • XML data
  • Excel data sources
  • WCF Data Services
  • DevExpress ORM Tool (XPO)
  • Code-first data

The GridControl also supports an unbound mode where specific columns (or all of them) display custom data not bound to a data field. This section contains help articles and tutorials, related to all supported data binding scenarios. You will also find documentation articles and tutorials related to the server mode. In this mode, the GridControl loads data and displays it on the screen in portions instead of loading the entire data set. This mode significantly speeds up your applications that use large data sources.

Learn More...

View Technology

The GridControl uses Views to represent data from a bound data source. These Views specify how records and record fields are arranged. They provide multiple edit, display and customization options, and allow you to change the look and feel. You can use one of the following View types to display data according to your needs.

  • Table View - displays data in a two-dimensional table.
  • Card View - displays data as cards. Each card arranges fields vertically in a single column.
  • TreeList View - displays grid records in a tree. Each data record is represented as a tree node.

Learn More...

Grid View Data Layout

The Grid View provides the most traditional way to display data source records - a table where columns represent related data fields and each row is an individual data source record. This section provides detailed information about customizing this layout, available to you and your end-users. Covers such aspects as:

  • creating, resizing and customizing columns;
  • column auto-width and best fit features;
  • column bands;
  • row preview sections;
  • cell merging;
  • etc.

Columns, Bands and Card Fields

Rows and Cards


The GridControl can group data against one or multiple columns. If you group data in a grid by a single column, records with identical values in the corresponding column will be arranged into data groups. Each data group is identified by a group row, which you can expand to access its underlying data rows. If you then group data by another column, data rows within each group are combined into second level groups according to the values of the new group column.

This section provides the overall information about grouping, including:

  • various grouping modes;
  • custom grouping;
  • processing group rows;
  • applying styles to group rows;
  • group rows API.

Learn more...


The Data Grid Views allow you to sort data by an unlimited number of columns. When sorting is applied to a View, records are re-arranged to meet current sort settings. The GridControl manages the automatic sorting for all types of data sources. The grid sorts the data itself and does not delegate this functionality to the underlying data source. This section covers sorting capabilities available to you at design time and in code, or to your users at runtime. These are:

  • sorting by value;
  • sorting by display text;
  • implementing custom sorting;
  • non-sortable columns.

Learn more...


The GridControl allows you to display brief information about groups of rows or specific columns. For instance, you can obtain the number of records or maximum value, etc. Such information is called a summary. This topic provides comprehensive information about summaries, such as:

  • summary types (total and group summaries);
  • obtaining and formatting summary values;
  • sorting data by summary values;
  • using custom aggregate functions.

Learn more...

Data Editing

This section will guide you through data editing concepts and features supported by the GridControl. These are:

  • adding and removing rows;
  • editing data using in-place editors, custom or default edit forms;
  • editing data in code;
  • input validation.

Learn more...

Filtering and Locating Rows

This section contains information about different ways of filtering and locating your data rows. You will find articles and tutorials, related to the following features:

  • column filter drop-down menus;
  • filter panel;
  • regular and excel-style filter editors;
  • incremental search;
  • search panel;
  • filter row;
  • filtering and locating rows API.

Learn more...

Focus and navigation

This group is dedicated to focus movement between cells at runtime.

  • Focusing Cells

    This topic provides information on focus movement between cells at runtime. Moving the cell focus at runtime may be useful when you need to facilitate end-user input. This enables you to move focus to desired cells automatically, so end-users don't need to navigate through the Views themselves. This topic only describes the basics of focus movement between cells.

  • Moving Row Focus

    This article is dedicated to methods that enable you to move row focus by a specified number of rows forward or backward.

  • Multiple Row Selection | Multiple Cell Selection

    The GridControl supports single row selection, multiple row selection and multiple cell selection modes. The latter is only available in the TableView and TreeList views. This topic provides information on these modes and related methods.

  • Selection Rectangle

    The marquee selection feature allows end-users to select a range of rows, cells or cards by dragging over items with the mouse.


The GridControl supports master-detail data presentation. This type of data representation requires the presence of at least two data tables - master and detail. These tables are linked by a one-to-many relationship, i.e., a single row in the first table can be related to one or more rows in the second table, but a row in the second table can be related to only one row in the first table. Master and detail tables are also called parent and child tables.

Note that a master-detail mode can be more complex than just two tables linked together. Each master table can be linked to multiple child tables and each child table in turn can be a master of another table and so on. The GridControl allows you to represent master-detail relationships of any complexity. Refer to help articles in this section to learn more.

Learn more...

Individual Features

This section contains info about various minor Data Grid features and techniques.

  • Saving and Restoring Layout

    The GridControl control allows you to save the information on its layout to a data store (an XML file or stream) and restore it when required. This information may include the visibility, position and size of visual elements, filter, sorting, grouping and summary information, etc.

  • Printing

    The GridControl control provides a fast and flexible way to bring the active View's contents to the printed page, or export to a file or stream in various formats - PDF, RTF, XLS, etc. A View provides multiple methods, allowing you to export or print its contents.

  • Hit Information

    Hit testing allows you to recognize which element is located at the specified screen coordinates. For instance, you may have to determine which part of a View a user has clicked or double-clicked.

Appearance and Conditional Formatting

Topics in this section describe different concepts and techniques of changing the way your Data Grid control looks.

  • Styles and Templates Overview

    The GridControl allows you to provide the desired data layout, appearance and visual presentation of its elements (e.g. cells, rows, summaries, etc.). The variety of styles enable you to group together property values and apply them to grid elements.

  • Grid Control Styles

    This topic lists all style properties introduced by the GridControl.

  • Grid Elements That Support Templates

    This topic lists the grid elements that can be customized using templates.

  • Conditional Formatting

    The GridControl provides a conditional formatting feature, which allows you to change the appearance of individual cells or rows based on specific conditions. This feature helps to highlight critical information, identify trends and exceptions, and compare data.

  • Choosing Templates Based on Custom Logic

    Columns and Views provide multiple properties that allow you to define templates and change the visual presentation of their elements. A template is applied to multiple elements in the same scope. This topic shows how to implement custom logic to provide a different visual appearance for individual grid elements.

  • Customizing the Appearance of Data Cells when Printing or Exporting the Grid

    When printing a grid, the appearance of its data cells is defined by the DisplayTemplate specified in a cell's printing style. This topic describes the creation of custom cell printing styles.

  • Cell Merging

    The cell merging feature allows your applications to deliver data clarity and avoid duplication by merging neighboring data cells across different rows whenever they display matching values.

The GridControl can display four types of popup menus that enable an end-user to manage data and customize a View by showing and hiding its UI elements. This section describes how to make the following customizations:

  • change default menu item names;
  • add and move menu items;
  • remove menu items;
  • dynamically customize grid menus at runtime.

Learn More...

Design-Time Features

Not only do the design-time features described in this section speed up the design process of your Data Grid control, they also allow you to create a fully working application from scratch without writing a single line of code.

  • Drag and Drop Data Binding

    The GridControl can be bound to a data source using Drag and Drop. After you add the data source to your project, you can generate data-bound GridControls by dragging items from the Data Sources window to the WPF Designer.

  • Simplified Data Binding

    The GridControl features the Items Source Configuration Wizard. It's an easy-to-use data binding wizard that supports various data types and binding options.

  • Unbound Grid Customization

    The GridControl provides design-time enhancements allowing you to automatically create columns for all fields in a data source to which the grid is bound at runtime.

  • Tasks Smart Tag Panel

    The GridControl Tasks smart tag panel provides an efficient way to configure the GridControl with no coding.

End-User Interaction

Topics in this section describe features available to your end-users, such as:

  • context menus;
  • column chooser;
  • clipboard management.

Learn More...

See Also