The grid grouping control provides out-of-the-box data-binding support to many popular data sources, including ADO.NET Entities, LINQ to SQL, ADO.NET DataTables and DataView, and all the data collections implementing IEnumerable, IList, IBindingList, IQueryable, ITypedList, and ICustomTypeDescriptor.
The grid grouping control supports both the master-detail relation (1:n relation) and the foreign key reference relation (n:1) in all data sources. In the case of the master-detail relationship, related records are displayed in a nested hierarchical grid under the parent records. In the case of the foreign key reference relation type, a child record is looked up in the related collection and displayed along with the parent grids column. The grid grouping control also supports self relations in a table.
The grid grouping control supports multilevel user-interactive column grouping both in the flat grid and in the nested hierarchy grids. The group drop area at the top can be customized to show the grouped columns in a hierarchical order. You can also add or remove grouped columns dynamically at run time. It allows further customization like changing tree line positions and colors.
Grid contents can be sorted based on the values of any column. You can perform custom sorting on a column by providing an IComparer object for that column. Sort icons can be placed either to the right, left, or top of the column header.
A subset of records that satisfies user-defined criteria can be extracted and displayed using filters. Filters can be applied across multiple columns at once. The grid grouping control provides excellent UI options for run time filtering, including an Excel-like filter dialog and a filter bar combo box. It also exhibits a dynamic filtering mechanism by applying the filter as characters are typed in the filter box. You can choose to include one or all of these filtering paradigms in your grid at the same time.
The grid grouping control can calculate and display summary values of records in a fixed row at the bottom of a grid, or in the group caption bars if the records are grouped. It provides various built-in summary options as mentioned in the following list, and can also be expanded to support any user-defined custom summaries.
Expression fields facilitate the inclusion of a column with a formula expression. The grouping engine comes with its own extensible formula engine for this purpose. Expression fields can be used in records just like a regular field. Users can calculate summaries, group, sort, or create filters based on expression fields.
Styles and formatting can be applied to individual columns, rows, or cells. The grid control also supports conditional formatting that applies a predefined style to cells if they satisfy any defined criteria. The grid grouping control also provides an Excel-like format cell dialog that aids in dynamic cell formatting. It has options such as font, number, background, and alignment.
The grid grouping control supports visualizing numeric column values using an Excel-inspired data bar, which can visualize negative and positive values using a different range of colors.
The grid grouping control provides support for Excel-like comments that can be used to display additional notes. The appearance of comment indicators and tips can be customized for each cell.
The grid grouping control provides support for merging cells dynamically based on the values in the cells. The merged state will be preserved after any dynamic change such as sorting or grouping.
The grid grouping control provides several cell types including text box, combo box, check box, button, numeric spin box, and drop-down list, and editor types like masked edit, double edit, integer edit, percent edit, and date-time edit. In addition, you can place any Windows Forms control or any custom control inside a cell using the control cell type.
The grid grouping control provides a seamless editing experience. New records can be added using the Add New Row button that can be shown either at the top or at the bottom of a grid. New records can be added to flat tables, grouped data, or nested tables at run time. If your data object has the IDataErrorInfo interface implemented for data validation, or the column values are constrained to a specific data type, grid will show an error icon with the error details if the validation fails.
Stacked headers allow you to have additional header rows that span across grid columns. You can group desired columns under each header row. These stacked header rows can be rearranged by a simple drag-and-drop action.
In the grid chart control, some rows and columns display built-in charts based on the grid values. The chart dynamically updates itself when the values in the grid change.
Preview rows can be enabled to display memo fields or notes for a given group or record. It is possible to add a preview section for each group or record.
The grid grouping control provides support for interactively rearranging columns by simple drag-and-drop operations. It also provides an Outlook-style column selector to add or remove columns at run time.
The grid grouping control offers different kinds of selection modes such as row only, column only, cell only, or any combination of rows, columns, and cells. Selection rendering is done on a separate top layer from the grid rendering, thus providing superior performance.
Grid contents can be zoomed in and out as required. Some available zoom options include percentage zooming at grid level and zooming at cell level.
The grid grouping control provides various built-in skins like Office 2003, Office 2007, Office 2010 Vista, and Metro to style a grid’s look and feel. It also provides options to define your own custom skin.
The grid grouping control provides rich design-time experience for the Visual Studio IDE by providing a built-in designer. This lets you easily set a grid’s properties and configure its column properties.
You can export the grid grouping control’s contents to a native Excel worksheet (.xls or .xlsx formats), Word document (.doc and .docx), or PDF with all its formatting and styles applied. This full-fledged export functionality can also export a grid with its nested hierarchies, grouped records, and summaries. The grid grouping control also supports exporting to a .csv file.
The grid grouping control supports XML serialization to preserve and restore the grids’ schema and style settings. All the visual styles, grid properties, column properties, groups, filters, summaries, and expressions can be serialized to XML.
The grid grouping control provides built-in support for the print and print preview dialogs.
The grid control for Windows Forms provides Coded UI support for .NET frameworks except 2.0 Framework. This support allows you to test the properties of of both the parent and child table cells. With this support, you can also validate the grid operations using the record option in Coded UI test builder.