Fast, Flexible and Full-Featured WPF Datagrid Control
Display up to a billion records with FlexGrid, a powerful, high-performance WPF datagrid control.
- Engineered for Flexibility - FlexGrid’s XAML-based architecture provides flexible MVVM data binding and easy style customization
- Designed for Usability - FlexGrid delivers features similar to Microsoft Excel, such as filtering and selection, so it will be intuitive for end-users
- Optimized for Performance - FlexGrid can handle large data sets in WPF with virtualization techniques that efficiently load resources and data on demand
Overview
A WPF datagrid is a user interface control for displaying, editing, and analyzing large data sets. FlexGrid is a WPF datagrid optimized for high-performance and flexibility, enabling .NET developers to customize every aspect of the control.
WPF Datagrid Highlights
The Most Flexible WPF DataGrid for Modern UI
Get a complete, modern WPF datagrid with FlexGrid, the industry’s most flexible cross-platform .NET datagrid. Every element of the grid’s design is customizable, from overall layout to individual cells. While most grids restrict you to per-column templates, FlexGrid lets you shape every cell uniquely with per-cell styling, templates, and logic. Go beyond traditional layouts and transpose your grid or transform it into a hierarchical TreeGrid using FlexGrid’s intuitive and flexible API.
Excel-Like Power Built for WPF Data Analysis
Deliver a spreadsheet experience users already know and love. FlexGrid for WPF mimics the Excel-style editing, analysis, and interaction patterns that boost user productivity without sacrificing WPF performance or MVVM architecture. Enable built-in Excel-like features, including filtering, sorting, grouping, freezing, cell merging, formatting, and clipboard operations. Provide your users with an intuitive and familiar interface to manage and analyze data, all within your WPF application.
Effortless Styling with Pure XAML
Customize your WPF DataGrid to match any design system without writing complex templates. FlexGrid for WPF seamlessly integrates with WPF’s styling model, allowing you to style every part of the grid through simple XAML resources, brushes, and themes. Achieve a polished, professional look with minimal effort, and adapt instantly to light or dark modes. With FlexGrid, creating a visually consistent and brand-aligned UI is as straightforward as styling any other WPF control.
See: ComponentOne WPF Easy Styling: An Alternative to Microsoft Blend
Optimized for Enterprise-Grade Desktop Performance
Experience high-speed rendering and smooth scrolling with FlexGrid’s lightweight WPF architecture. Designed for large-scale enterprise data, it supports on-demand data loading (Virtual Mode) via C1DataCollection, fetching only what’s visible to users for optimal responsiveness. Whether displaying thousands or millions of records, FlexGrid maintains high performance and minimal memory usage, ensuring your WPF applications stay fast, fluid, and future-ready.
WPF Datagrid Key Features
-
Data Binding & Performance
Bound or Unbound
Get started quickly with automatic data binding to any .NET data source or custom business objects. FlexGrid also supports an unbound mode, giving you complete control over creating each row, column, and cell value.
Hierarchical TreeGrid
FlexGrid for WPF supports hierarchical data binding. Plus, you can use FlexGrid as a flexible “TreeGrid” to display and edit any data like a multi-column treeview.
Dynamic Updates
Create live datagrid displays and dashboards with automatic updates. Show stock prices and other rapidly updating information in your datagrid.
Paging
To improve performance for large data sets, you can enable paging rather than vertical scrolling. Set the page size and navigate pages using the data pager control.
Virtual Mode
Improve performance and reduce load times for very large data sets with on-demand loading (or “Virtual Mode”) where data is only retrieved as the user scrolls. FlexGrid for WPF also supports cell preview placeholders known as "skeleton" loading.
Scrolling Modes
FlexGrid for WPF supports several additional scrolling features that can help improve performance. You can defer scrolling until the user stops moving the scroll thumb, display tooltips during scroll, or set the scroll mode to be pixel-based or row/column-based.
-
Bound or Unbound
Bound or Unbound
FlexGrid supports data binding to most .NET data collections, including ObservableCollection, List, Array, BindingSource, and ADO.NET objects such as DataSet and DataTable. Columns are automatically generated when data-binding.
Connect to SQL Server or a variety of other sources like JSON, CSV, Dynamics, and other online CRMs using ComponentOne Data Connectors.
With unbound mode, you can programmatically add rows and columns. Set cell values in code or create an empty grid for end-users to edit like a spreadsheet.
-
Hierarchical TreeGrid
Hierarchical TreeGrid
FlexGrid supports hierarchical data binding through its ChildItemsPath property. It will automatically generate child views if your data model includes child objects. But if your data is not already hierarchical, you can also transform any data collection into a “TreeGrid” using FlexGrid's flexible tree node API.
-
Dynamic Updates
Dynamic Updates
FlexGrid honors .NET dynamic data sources. Bind to an ObservableCollection or anything that inherits the INotifyPropertyChanged interface, and get dynamic updates from the data source reflected in the FlexGrid. Live updates can include added, removed, reordered, or modified cell values.
-
Paging
Paging
Enable paging to navigate through different pages of data bound to FlexGrid. Like the virtual mode and on-demand loading, paging is supported by the help of C1DataCollection. Paging can improve performance for large data sets as data is loaded per page. Learn how to page in WPF through our samples.
-
Virtual Mode
Virtual Mode
Virtual Mode (also known as “data virtualization” or “incremental loading”) helps manage large datasets from remote sources when loading the entire dataset at once is not practical. With Virtual Mode, we can understand the entire dataset but only load smaller portions (or pages) of it at once.
FlexGrid for WPF also supports “skeleton” loading, which allows you to display simple placeholders within cells until the data is loaded on demand. This feature significantly improves the perceived performance and user experience for your applications.
Read More: A Guide to On-Demand Loading with Data Virtualization in C# .NET
-
Scrolling Modes
Scrolling Modes
Enhance your users' experience navigating large data sets with customizable tooltips and scrolling modes in ComponentOne’s WPF FlexGrid. Display meaningful row details in tooltips as users scroll, helping them quickly understand their position within the grid. Improve perceived performance with deferred scrolling or configure the scroll mode to be pixel-based or row/column-based. Using any combination of these features can significantly improve performance and your users' experience.
-
Editing & Selection
Custom Cell Editors
FlexGrid provides several built-in editors to enable efficient in-cell editing for numbers, dates, checkboxes, and data-mapped combo-boxes. Or create a custom cell editing template using any other UI components.
Add New Row
Give your users a quick solution for adding records to the data source with FlexGrid’s built-in empty new row feature.
Selection
Get Excel-like cell selection across rows and columns. Configure the selection mode per your requirements. FlexGrid also offers mobile selection solutions, including intuitive touch support and checkbox selection.
Clipboard Support
When working with data grids, the clipboard is crucial. FlexGrid enables users to cut, copy, and paste selected cells, allowing them to edit or duplicate values across grids and other applications.
Validation
Validate data entry with built-in formatting and error detection, or use unobtrusive validation to validate as the user types.
-
Custom Cell Editors
Custom Cell Editors
FlexGrid for WPF provides built-in cell editors for formatted text, numbers, dates, checkboxes, and data-mapped combo-boxes. Plus, you can easily create custom bound cell editors in XAML using the CellEditingTemplate or in C# using the Cell Factories API.
-
Add New Row
Add New Row
In addition to editing data, FlexGrid provides a built-in feature for adding new records to the data source. Use the NewRowPosition property to determine if the new row template is at the top or bottom of the grid. Display placeholder or watermark text to help guide the user to input new data.
-
Selection
Selection
FlexGrid provides the most flexible selection options. Through its Selection Mode, you can define how users select cells: by row, column, row range, column range, single cell, or cell range. FlexGrid also supports non-adjacent cell range selection by holding the CTRL key. Plus, for mobile UIs, you can achieve checkbox selection with touch support.
-
Clipboard Support
Clipboard Support
FlexGrid supports all clipboard operations, such as cut, copy, and paste, on selected cells. You can configure the copying behavior to include or exclude column headers and row headers for convenience using the ClipboardCopyMode property. Plus, FlexGrid supports cell value deletion by pressing the Delete key.
-
Validation
Validation
Input validation enables you to analyze and control the data that users enter into a FlexGrid cell. There are several ways to validate data, such as restricting invalid keys, displaying an error or warning message, or reverting the value to its original state.
You can configure the validation styles using the ErrorStyle and ErrorIconTemplate properties. The C1Icon library provides a set of built-in symbols like circles, arrows, chevrons, dots, triangles, and more.
-
Filtering & Data Analysis
Excel-Like Filtering
FlexGrid supports drop-down filters in column headers, similar to those found in Microsoft Excel. You can enable filtering on any column to provide users with value and condition-based filter editors.
Full Text Filtering
FlexGrid enables you to perform full-text filtering or searching on your data, displaying all matching instances found within the grid. Search the entire grid or just a specific column and then highlight all matching occurrences.
Data Filter UI Panel
Enhance your WPF datagrid display with an advanced DataFilter UI. The C1DataFilter control provides E-commerce-like filters for the entire data table.
Multi-Column Sorting
FlexGrid supports sorting, with options for ascending and descending, by clicking on the column headers. It also supports sorting by multiple columns.
Grouping & Aggregation
Group data in FlexGrid to organize and analyze data more precisely. Customize the text displayed in header rows. Enable run-time grouping to give users full control.
Conditional Formatting
Apply conditional formatting to highlight values that meet any criteria. FlexGrid provides a robust cell formatting API.
Rules Manager UI
The WPF Rules Manager UI provides full runtime conditional formatting management for FlexGrid, just like Microsoft Excel.
Sparklines in Cells
Embed sparklines in cells to show trends such as periodic fluctuations, or to highlight maximum or minimum values of the data series.
Cross-Tab Pivot Views
Create dynamic pivot table views, similar to those in Microsoft Excel, and aggregate millions of rows of data in milliseconds with ComponentOne FlexPivot, an extended FlexGrid component.
Learn More: ComponentOne FlexPivot for WPF
Gantt Views
Provide users with a Microsoft Project-like experience for project schedule management with ComponentOne GanttView, an extended FlexGrid component.
Learn More: ComponentOne GanttView for WPF
-
Excel-Like Filtering
Excel-Like Filtering
FlexGrid provides Excel-like filtering through a drop-down editor in the column headers. It supports value-based (checkbox) and condition-based filters by default, along with specialized editors for dates, Booleans, and numbers. Users can build complex filters with multiple conditions. You can also extend the filter UI to provide custom filtering.
-
Full Text Filtering
Full Text Filtering
Full-text filtering lets users search the entire FlexGrid through a standard TextBox. You can configure which columns can be searched, filter out unmatching rows, and highlight matching text. Configure precise searching by matching case, the whole word, numbers, and even treating spaces as && (And) operators. In WPF, this feature is supported through the FullTextFilterBehavior.
-
Data Filter UI Panel
Data Filter UI Panel
ComponentOne DataFilter provides a complete WPF filter panel UI that can be integrated with FlexGrid or any databound control.
The Data Filter UI panel can be automatically generated from the data source or created manually. It supports a variety of filter types, including checkboxes, range sliders, date pickers, number editors, and even category-based expressions.
-
Multi-Column Sorting
Multi-Column Sorting
Sorting is one of the basic features a .NET datagrid must have, and FlexGrid provides complete control over how data can be sorted in ascending or descending order for easier data analysis. Users can sort by clicking the column header or through the column drop-down menu. By default, multi-column sorting is also possible by pressing the Shift or CTRL key while clicking on multiple column headers.
-
Grouping & Aggregation
Grouping & Aggregation
Grouping helps organize the grid data into a hierarchical structure where rows with common values are displayed as a group. You can enable grouping through code, or enable it at runtime through the column header menu or the grouping panel. Display automatically generated aggregates for any column by simply setting its Aggregate property.
-
Conditional Formatting
Conditional Formatting
Apply conditional formatting by highlighting cell values that fall into a specific range. You can format text, display symbols, and apply cell styles to provide visual highlights to data values. FlexGrid for WPF has a flexible API consisting of XAML Cell Templates and C# Cell Factories, enabling endless possibilities.
-
Rules Manager UI
Rules Manager UI
The ComponentOne RulesManager for WPF provides users with an intuitive, dockable UI panel for managing formatting rules. Users can easily create, edit, reorder, rename, or delete rules at runtime without requiring a single line of code. The conditional formatting features include gradient fills, icon sets, progress bars, and more. All you have to do is connect the component to FlexGrid.
-
Sparklines in Cells
Sparklines in Cells
One of the main strengths of FlexGrid is its ability to customize every aspect of the appearance of the entire grid and individual cells.
Embed Sparklines in FlexGrid to show trends such as periodic fluctuations, or to highlight maximum or minimum values of the data series. The Sparklines support column, line, and win/loss visualizations, and the feature can be implemented by embedding C1Sparkline into a custom cell template or cell factory.
Learn More:
-
Cross-Tab Pivot Views
Cross-Tab Pivot Views
Create dynamic pivot tables like Microsoft Excel with ComponentOne FlexPivot.
- Connect to multiple data sources, including SSAS cubes
- Process and aggregate millions of rows in milliseconds
- Simply connect the all-in-one C1FlexPivotPage component to a data source, and you have a complete analytical tool, including the pivot panel, grid, chart, and toolbar.
Learn More: ComponentOne FlexPivot for WPF
-
Gantt Views
Gantt Views
Provide users with a Microsoft Project-like experience for project schedule management with ComponentOne GanttView.
- Visualize and edit project tasks in a graphical Gantt chart
- Generate automatic schedules from your data source or import from Microsoft Project
- Get complete runtime management of resources, dependencies, styles, and much more
Learn More: ComponentOne GanttView for WPF
-
Column & Row Features
Freezing and Pinning
FlexGrid offers Excel-like row and column freezing and pinning. This allows users to keep rows and columns in view as they navigate the content of the datagrid. The difference is that pinning allows any column to be frozen.
Cell Merging
Merge adjacent cells with matching values across columns and down rows. Merge header cells, create custom cell merging rules, and set restrictions on how FlexGrid merges cells.
Footers & Summary Row
The column footer rows allow you to display a fixed summary row along the bottom of the grid. The built-in summary row offers automatic aggregation of column values, which the user can configure at runtime.
Responsive Column Sizing
FlexGrid columns can be automatically sized to fit text and allow users to resize at runtime. Additionally, columns can be set to proportionally fill the space (star sizing).
Row Details
Drill into a row of data to show more details inside a collapsible panel. You can display an input form, a child data grid, or any other content within the detail row.
Transposed View
You can easily transpose FlexGrid by just setting one property. A transposed datagrid flips the rows and columns so that the headers display down the left side and rows display horizontally across the application.
-
Freezing and Pinning
Freezing and Pinning
Freeze any number of rows or columns in FlexGrid just like Microsoft Excel. Column Pinning enables the end-user to freeze any column in the grid and pin it to the left, allowing them to keep it in view while scrolling horizontally through the FlexGrid. You can freeze cells in WPF on the left, right, top, or bottom.
-
Cell Merging
Cell Merging
ComponentOne's WPF datagrid, FlexGrid, supports content-driven cell merging just like Microsoft Excel. This allows you to merge matching adjacent cells across columns and down rows. Merge header cells, create custom cell merging rules, and set restrictions on how FlexGrid merges cells.
-
Footers & Summary Row
Footers & Summary Row
The WPF FlexGrid can display a summary of each column at the bottom in a fixed footer. Display a numeric summary using various aggregate functions such as Sum, Average, Count, Minimum, Maximum, etc.
The benefit of displaying the summary of records in the footer is that it is always visible, even as you scroll the grid. Moreover, the summary row gets automatically updated whenever you make any changes in the data displayed in the FlexGrid control.
-
Responsive Column Sizing
Responsive Column Sizing
With FlexGrid for WPF, you have some flexible column sizing solutions. First, columns can be autosized to fit all content. Second, you can use “star sizing” that keeps all columns scaled proportionally as the Window gets resized. This can help ensure the grid fits the client window and will not require horizontal scrolling.
-
Row Details
Row Details
The FlexGrid Row Details feature lets you embed child or hierarchical data within each row of the grid. The row details are collapsible and customizable. You can display an input form, a child data grid, or any other content within the detail row.
-
Transposed View
Transposed View
A transposed WPF datagrid flips the rows and columns so that the headers display down the left side and rows display horizontally across the application. You can easily transpose FlexGrid for WPF by just setting one property.
-
Import & Export
Import & Export to Excel
If your business relies on Excel for data management, you can use FlexGrid to preview and export your data into an XLSX or CSV file to view in Excel.
Export to PDF
FlexGrid supports exporting all content to PDF using the ComponentOne PDF for .NET library. This allows you to export the datagrid as a quick and easy report.
Printing
FlexGrid allows you to print the grid and perform various basic and advanced print settings using its built-in methods and properties.
-
Import & Export to Excel
Import & Export to Excel
Export the FlexGrid data to Microsoft Excel files (XLSX) and CSV files. The FlexGrid uses the C1.Excel library to manage file access. Choose how to preserve formatting, frozen cells, merged ranges, and more. You can also export only the selected data. Exporting to HTML and plain text is also supported.
-
Export to PDF
Export to PDF
FlexGrid supports several different approaches to PDF export. For WPF, there is the C1.WPF.PDF library and PdfDocumentSource libraries. The GetPageImages method returns a printable collection of pages that can be used to customize the PDF or print document.
-
Printing
Printing
The FlexGrid control provides a printing method that allows you to specify the document name, page margins, scaling, maximum number of pages to print, and print parameters. The output is a faithful rendering of the grid, including all style elements, fonts, gradients, images, etc. Row and column headers are included on every page. Plus, our special C1PrintDocument component enables advanced printing techniques.
-
Style & Appearance
Cell Styles
Highlight cells based on the underlying value or as the user hovers over them with the mouse. Configure cell styles for a wide range of use cases.
Themes
FlexGrid supports a modern, light theme by default. For certain frameworks, you can additionally choose one of our professionally designed themes for FlexGrid.
Localization & Globalization
Select the language that FlexGrid uses to display its data, and format how it displays dates and numbers. Plus, with RTL Support, you can handle Arabic, Hebrew, and other right-to-left languages with the globalized FlexGrid.
UI Automation & Accessibility
UI Automation (UIA) support enables accessibility applications, such as screen readers, and coded UI testing to examine FlexGrid cell by cell. It also enables simulated user interaction from code.
-
Cell Styles
Cell Styles
One of the key values of ComponentOne WPF controls is the easy styling. We’ve made it easy for developers to make simple visual appearance changes without needing to use separate designer tools, such as Microsoft Blend, or customize control templates.
FlexGrid exposes a rich API of Brush properties to style every corner of the WPF datagrid. This includes normal cells, fixed cells, alternating rows, hovered cells, focused cells, and more. You can easily modify cell styles in C# code or XAML.
-
Themes
Themes
ComponentOne WPF Edition includes 20+ professional themes, including Office 365 and Material themes. You can easily apply a theme to the entire application or just FlexGrid. You can customize and create your own themes, which include custom scrollbar styles.
-
Localization & Globalization
Localization & Globalization
Select the language that FlexGrid uses to display its data, and format how it displays dates and numbers. Plus, with RTL Support, you can handle Arabic, Hebrew, and other right-to-left languages with the globalized FlexGrid. Exported Excel files also support RTL. To enable RTL, just set the FlowDirection property.
-
UI Automation & Accessibility
UI Automation & Accessibility
Microsoft UI Automation is a framework for programmatically accessing UI elements in .NET applications. It serves two primary functions: creating robust automated UI tests and enabling accessibility for users with disabilities. The framework provides a single model for interacting with UI controls, making it a critical technology for modern WinForms and WPF development.
Bound or Unbound
Get started quickly with automatic data binding to any .NET data source or custom business objects. FlexGrid also supports an unbound mode, giving you complete control over creating each row, column, and cell value.
Hierarchical TreeGrid
FlexGrid for WPF supports hierarchical data binding. Plus, you can use FlexGrid as a flexible “TreeGrid” to display and edit any data like a multi-column treeview.
Dynamic Updates
Create live datagrid displays and dashboards with automatic updates. Show stock prices and other rapidly updating information in your datagrid.
Paging
To improve performance for large data sets, you can enable paging rather than vertical scrolling. Set the page size and navigate pages using the data pager control.
Virtual Mode
Improve performance and reduce load times for very large data sets with on-demand loading (or “Virtual Mode”) where data is only retrieved as the user scrolls. FlexGrid for WPF also supports cell preview placeholders known as "skeleton" loading.
Scrolling Modes
FlexGrid for WPF supports several additional scrolling features that can help improve performance. You can defer scrolling until the user stops moving the scroll thumb, display tooltips during scroll, or set the scroll mode to be pixel-based or row/column-based.
Bound or Unbound
FlexGrid supports data binding to most .NET data collections, including ObservableCollection, List, Array, BindingSource, and ADO.NET objects such as DataSet and DataTable. Columns are automatically generated when data-binding.
Connect to SQL Server or a variety of other sources like JSON, CSV, Dynamics, and other online CRMs using ComponentOne Data Connectors.
With unbound mode, you can programmatically add rows and columns. Set cell values in code or create an empty grid for end-users to edit like a spreadsheet.
Hierarchical TreeGrid
FlexGrid supports hierarchical data binding through its ChildItemsPath property. It will automatically generate child views if your data model includes child objects. But if your data is not already hierarchical, you can also transform any data collection into a “TreeGrid” using FlexGrid's flexible tree node API.
Dynamic Updates
FlexGrid honors .NET dynamic data sources. Bind to an ObservableCollection or anything that inherits the INotifyPropertyChanged interface, and get dynamic updates from the data source reflected in the FlexGrid. Live updates can include added, removed, reordered, or modified cell values.
Paging
Enable paging to navigate through different pages of data bound to FlexGrid. Like the virtual mode and on-demand loading, paging is supported by the help of C1DataCollection. Paging can improve performance for large data sets as data is loaded per page. Learn how to page in WPF through our samples.
Virtual Mode
Virtual Mode (also known as “data virtualization” or “incremental loading”) helps manage large datasets from remote sources when loading the entire dataset at once is not practical. With Virtual Mode, we can understand the entire dataset but only load smaller portions (or pages) of it at once.
FlexGrid for WPF also supports “skeleton” loading, which allows you to display simple placeholders within cells until the data is loaded on demand. This feature significantly improves the perceived performance and user experience for your applications.
Read More: A Guide to On-Demand Loading with Data Virtualization in C# .NET
Scrolling Modes
Enhance your users' experience navigating large data sets with customizable tooltips and scrolling modes in ComponentOne’s WPF FlexGrid. Display meaningful row details in tooltips as users scroll, helping them quickly understand their position within the grid. Improve perceived performance with deferred scrolling or configure the scroll mode to be pixel-based or row/column-based. Using any combination of these features can significantly improve performance and your users' experience.
Custom Cell Editors
FlexGrid provides several built-in editors to enable efficient in-cell editing for numbers, dates, checkboxes, and data-mapped combo-boxes. Or create a custom cell editing template using any other UI components.
Add New Row
Give your users a quick solution for adding records to the data source with FlexGrid’s built-in empty new row feature.
Selection
Get Excel-like cell selection across rows and columns. Configure the selection mode per your requirements. FlexGrid also offers mobile selection solutions, including intuitive touch support and checkbox selection.
Clipboard Support
When working with data grids, the clipboard is crucial. FlexGrid enables users to cut, copy, and paste selected cells, allowing them to edit or duplicate values across grids and other applications.
Validation
Validate data entry with built-in formatting and error detection, or use unobtrusive validation to validate as the user types.
Custom Cell Editors
FlexGrid for WPF provides built-in cell editors for formatted text, numbers, dates, checkboxes, and data-mapped combo-boxes. Plus, you can easily create custom bound cell editors in XAML using the CellEditingTemplate or in C# using the Cell Factories API.
Add New Row
In addition to editing data, FlexGrid provides a built-in feature for adding new records to the data source. Use the NewRowPosition property to determine if the new row template is at the top or bottom of the grid. Display placeholder or watermark text to help guide the user to input new data.
Selection
FlexGrid provides the most flexible selection options. Through its Selection Mode, you can define how users select cells: by row, column, row range, column range, single cell, or cell range. FlexGrid also supports non-adjacent cell range selection by holding the CTRL key. Plus, for mobile UIs, you can achieve checkbox selection with touch support.
Clipboard Support
FlexGrid supports all clipboard operations, such as cut, copy, and paste, on selected cells. You can configure the copying behavior to include or exclude column headers and row headers for convenience using the ClipboardCopyMode property. Plus, FlexGrid supports cell value deletion by pressing the Delete key.
Validation
Input validation enables you to analyze and control the data that users enter into a FlexGrid cell. There are several ways to validate data, such as restricting invalid keys, displaying an error or warning message, or reverting the value to its original state.
You can configure the validation styles using the ErrorStyle and ErrorIconTemplate properties. The C1Icon library provides a set of built-in symbols like circles, arrows, chevrons, dots, triangles, and more.
Excel-Like Filtering
FlexGrid supports drop-down filters in column headers, similar to those found in Microsoft Excel. You can enable filtering on any column to provide users with value and condition-based filter editors.
Full Text Filtering
FlexGrid enables you to perform full-text filtering or searching on your data, displaying all matching instances found within the grid. Search the entire grid or just a specific column and then highlight all matching occurrences.
Data Filter UI Panel
Enhance your WPF datagrid display with an advanced DataFilter UI. The C1DataFilter control provides E-commerce-like filters for the entire data table.
Multi-Column Sorting
FlexGrid supports sorting, with options for ascending and descending, by clicking on the column headers. It also supports sorting by multiple columns.
Grouping & Aggregation
Group data in FlexGrid to organize and analyze data more precisely. Customize the text displayed in header rows. Enable run-time grouping to give users full control.
Conditional Formatting
Apply conditional formatting to highlight values that meet any criteria. FlexGrid provides a robust cell formatting API.
Rules Manager UI
The WPF Rules Manager UI provides full runtime conditional formatting management for FlexGrid, just like Microsoft Excel.
Sparklines in Cells
Embed sparklines in cells to show trends such as periodic fluctuations, or to highlight maximum or minimum values of the data series.
Cross-Tab Pivot Views
Create dynamic pivot table views, similar to those in Microsoft Excel, and aggregate millions of rows of data in milliseconds with ComponentOne FlexPivot, an extended FlexGrid component.
Learn More: ComponentOne FlexPivot for WPF
Gantt Views
Provide users with a Microsoft Project-like experience for project schedule management with ComponentOne GanttView, an extended FlexGrid component.
Learn More: ComponentOne GanttView for WPF
Excel-Like Filtering
FlexGrid provides Excel-like filtering through a drop-down editor in the column headers. It supports value-based (checkbox) and condition-based filters by default, along with specialized editors for dates, Booleans, and numbers. Users can build complex filters with multiple conditions. You can also extend the filter UI to provide custom filtering.
Full Text Filtering
Full-text filtering lets users search the entire FlexGrid through a standard TextBox. You can configure which columns can be searched, filter out unmatching rows, and highlight matching text. Configure precise searching by matching case, the whole word, numbers, and even treating spaces as && (And) operators. In WPF, this feature is supported through the FullTextFilterBehavior.
Data Filter UI Panel
ComponentOne DataFilter provides a complete WPF filter panel UI that can be integrated with FlexGrid or any databound control.
The Data Filter UI panel can be automatically generated from the data source or created manually. It supports a variety of filter types, including checkboxes, range sliders, date pickers, number editors, and even category-based expressions.
Multi-Column Sorting
Sorting is one of the basic features a .NET datagrid must have, and FlexGrid provides complete control over how data can be sorted in ascending or descending order for easier data analysis. Users can sort by clicking the column header or through the column drop-down menu. By default, multi-column sorting is also possible by pressing the Shift or CTRL key while clicking on multiple column headers.
Grouping & Aggregation
Grouping helps organize the grid data into a hierarchical structure where rows with common values are displayed as a group. You can enable grouping through code, or enable it at runtime through the column header menu or the grouping panel. Display automatically generated aggregates for any column by simply setting its Aggregate property.
Conditional Formatting
Apply conditional formatting by highlighting cell values that fall into a specific range. You can format text, display symbols, and apply cell styles to provide visual highlights to data values. FlexGrid for WPF has a flexible API consisting of XAML Cell Templates and C# Cell Factories, enabling endless possibilities.
Rules Manager UI
The ComponentOne RulesManager for WPF provides users with an intuitive, dockable UI panel for managing formatting rules. Users can easily create, edit, reorder, rename, or delete rules at runtime without requiring a single line of code. The conditional formatting features include gradient fills, icon sets, progress bars, and more. All you have to do is connect the component to FlexGrid.
Sparklines in Cells
One of the main strengths of FlexGrid is its ability to customize every aspect of the appearance of the entire grid and individual cells.
Embed Sparklines in FlexGrid to show trends such as periodic fluctuations, or to highlight maximum or minimum values of the data series. The Sparklines support column, line, and win/loss visualizations, and the feature can be implemented by embedding C1Sparkline into a custom cell template or cell factory.
Learn More:
Cross-Tab Pivot Views
Create dynamic pivot tables like Microsoft Excel with ComponentOne FlexPivot.
- Connect to multiple data sources, including SSAS cubes
- Process and aggregate millions of rows in milliseconds
- Simply connect the all-in-one C1FlexPivotPage component to a data source, and you have a complete analytical tool, including the pivot panel, grid, chart, and toolbar.
Learn More: ComponentOne FlexPivot for WPF
Gantt Views
Provide users with a Microsoft Project-like experience for project schedule management with ComponentOne GanttView.
- Visualize and edit project tasks in a graphical Gantt chart
- Generate automatic schedules from your data source or import from Microsoft Project
- Get complete runtime management of resources, dependencies, styles, and much more
Learn More: ComponentOne GanttView for WPF
Freezing and Pinning
FlexGrid offers Excel-like row and column freezing and pinning. This allows users to keep rows and columns in view as they navigate the content of the datagrid. The difference is that pinning allows any column to be frozen.
Cell Merging
Merge adjacent cells with matching values across columns and down rows. Merge header cells, create custom cell merging rules, and set restrictions on how FlexGrid merges cells.
Footers & Summary Row
The column footer rows allow you to display a fixed summary row along the bottom of the grid. The built-in summary row offers automatic aggregation of column values, which the user can configure at runtime.
Responsive Column Sizing
FlexGrid columns can be automatically sized to fit text and allow users to resize at runtime. Additionally, columns can be set to proportionally fill the space (star sizing).
Row Details
Drill into a row of data to show more details inside a collapsible panel. You can display an input form, a child data grid, or any other content within the detail row.
Transposed View
You can easily transpose FlexGrid by just setting one property. A transposed datagrid flips the rows and columns so that the headers display down the left side and rows display horizontally across the application.
Freezing and Pinning
Freeze any number of rows or columns in FlexGrid just like Microsoft Excel. Column Pinning enables the end-user to freeze any column in the grid and pin it to the left, allowing them to keep it in view while scrolling horizontally through the FlexGrid. You can freeze cells in WPF on the left, right, top, or bottom.
Cell Merging
ComponentOne's WPF datagrid, FlexGrid, supports content-driven cell merging just like Microsoft Excel. This allows you to merge matching adjacent cells across columns and down rows. Merge header cells, create custom cell merging rules, and set restrictions on how FlexGrid merges cells.
Footers & Summary Row
The WPF FlexGrid can display a summary of each column at the bottom in a fixed footer. Display a numeric summary using various aggregate functions such as Sum, Average, Count, Minimum, Maximum, etc.
The benefit of displaying the summary of records in the footer is that it is always visible, even as you scroll the grid. Moreover, the summary row gets automatically updated whenever you make any changes in the data displayed in the FlexGrid control.
Responsive Column Sizing
With FlexGrid for WPF, you have some flexible column sizing solutions. First, columns can be autosized to fit all content. Second, you can use “star sizing” that keeps all columns scaled proportionally as the Window gets resized. This can help ensure the grid fits the client window and will not require horizontal scrolling.
Row Details
The FlexGrid Row Details feature lets you embed child or hierarchical data within each row of the grid. The row details are collapsible and customizable. You can display an input form, a child data grid, or any other content within the detail row.
Transposed View
A transposed WPF datagrid flips the rows and columns so that the headers display down the left side and rows display horizontally across the application. You can easily transpose FlexGrid for WPF by just setting one property.
Import & Export to Excel
If your business relies on Excel for data management, you can use FlexGrid to preview and export your data into an XLSX or CSV file to view in Excel.
Export to PDF
FlexGrid supports exporting all content to PDF using the ComponentOne PDF for .NET library. This allows you to export the datagrid as a quick and easy report.
Printing
FlexGrid allows you to print the grid and perform various basic and advanced print settings using its built-in methods and properties.
Import & Export to Excel
Export the FlexGrid data to Microsoft Excel files (XLSX) and CSV files. The FlexGrid uses the C1.Excel library to manage file access. Choose how to preserve formatting, frozen cells, merged ranges, and more. You can also export only the selected data. Exporting to HTML and plain text is also supported.
Export to PDF
FlexGrid supports several different approaches to PDF export. For WPF, there is the C1.WPF.PDF library and PdfDocumentSource libraries. The GetPageImages method returns a printable collection of pages that can be used to customize the PDF or print document.
Printing
The FlexGrid control provides a printing method that allows you to specify the document name, page margins, scaling, maximum number of pages to print, and print parameters. The output is a faithful rendering of the grid, including all style elements, fonts, gradients, images, etc. Row and column headers are included on every page. Plus, our special C1PrintDocument component enables advanced printing techniques.
Cell Styles
Highlight cells based on the underlying value or as the user hovers over them with the mouse. Configure cell styles for a wide range of use cases.
Themes
FlexGrid supports a modern, light theme by default. For certain frameworks, you can additionally choose one of our professionally designed themes for FlexGrid.
Localization & Globalization
Select the language that FlexGrid uses to display its data, and format how it displays dates and numbers. Plus, with RTL Support, you can handle Arabic, Hebrew, and other right-to-left languages with the globalized FlexGrid.
UI Automation & Accessibility
UI Automation (UIA) support enables accessibility applications, such as screen readers, and coded UI testing to examine FlexGrid cell by cell. It also enables simulated user interaction from code.
Cell Styles
One of the key values of ComponentOne WPF controls is the easy styling. We’ve made it easy for developers to make simple visual appearance changes without needing to use separate designer tools, such as Microsoft Blend, or customize control templates.
FlexGrid exposes a rich API of Brush properties to style every corner of the WPF datagrid. This includes normal cells, fixed cells, alternating rows, hovered cells, focused cells, and more. You can easily modify cell styles in C# code or XAML.
Themes
ComponentOne WPF Edition includes 20+ professional themes, including Office 365 and Material themes. You can easily apply a theme to the entire application or just FlexGrid. You can customize and create your own themes, which include custom scrollbar styles.
Localization & Globalization
Select the language that FlexGrid uses to display its data, and format how it displays dates and numbers. Plus, with RTL Support, you can handle Arabic, Hebrew, and other right-to-left languages with the globalized FlexGrid. Exported Excel files also support RTL. To enable RTL, just set the FlowDirection property.
UI Automation & Accessibility
Microsoft UI Automation is a framework for programmatically accessing UI elements in .NET applications. It serves two primary functions: creating robust automated UI tests and enabling accessibility for users with disabilities. The framework provides a single model for interacting with UI controls, making it a critical technology for modern WinForms and WPF development.
.NET Datagrid Demos
Desktop Demo Explorer
All of our WinForms and WPF demos are included in a single downloadable desktop explorer. Explore every feature and showcase demos for FlexGrid.
FlexGrid ASP.NET MVC Demos
Explore every FlexGrid feature and showcase demos right in your browser. Configure key properties and see what our .NET datagrid can do for your ASP.NET MVC applications.
Blazor Server Explorer
Explore every FlexGrid key feature for Blazor including data binding, column reordering, data virtualization and more. A WebAssembly demo is also available.
Easy Licensing and Distribution
Manage your licenses through your MESCIUS account.
Licensing Information
ComponentOne is licensed per developer on a yearly subscription basis. You can build and publish unlimited .NET applications using ComponentOne controls during your subscription period. Published applications are royalty-free and never expire.
Become an OEM Partner
To create your own commercially licensed SDK or web application builder, choose the Commercial OEM license. Commercial OEM and SaaS licenses are customized per customer.
End-User Licensing Agreement
Our End-User License Agreement (EULA) includes information on ComponentOne's licensing, legal agreement, and the terms and conditions that govern software usage.
Get started with FlexGrid by adding the C1.WPF.Grid NuGet package.
dotnet add package C1.WPF.Grid
Get Started with FlexGrid for WPF
Featured Blogs, Videos, and Other Resources
ComponentOne Customer Feedback and Awards
"Prompt responses, quality feedback, and help with code examples. Fantastic service!"
RICHARD HERBERT
"Excellent product with good support"
MIKE WEBSTER
"I am very appreciative of the effort your entire team gave to make this transaction happen. Thank you for your efforts!"
SAM COLE
![]() |
![]() |
![]() |
"When I run into complex problems, I turn to my ComponentOne Studio Enterprise toolbox."
KEN SPENSER, MICROSOFT REGIONAL DIRECTOR - FRAMEWORK MASTERS
"I love to use C1 components! I can be confident that if I need to do a particular task, ComponentOne will have the control to do the job."
SILV SORDELLO, SOFTWARE DEVELOPER
"As an ISV, I need tools that allow me to be competitive. Therefore, it's a must to use reliable and stable tools for customized solutions...ComponentOne provides all that to me and even more!"
DENNIS WALLENTIN, MICROSOFT MVP (EXCEL)
"Easier to use right off the bat. I liked using the Scheduler for drag-and-drop capability."
MICHELLE GIBSON, SOFTWARE ENGINEER
Trusted by the World's Leading Companies


