Skip to main content

syncfusion-winforms-grid-grouping-control

Implements Syncfusion Windows Forms GridGroupingControl for advanced data management with grouping, sorting, filtering, and hierarchical display. Use this when working with multi-level grouping, master-detail grids, nested table relationships, or data summaries with aggregates. The skill covers group-by operations, Excel-like filtering, dynamic record filters, hierarchical data structures, and enterprise-level grid capabilities.

Datos de origen

Repositorio
syncfusion/winforms-ui-components-skills
Última actividad en el origen
6 de julio de 2026 a las 07:19
Idioma detectado de SKILL.md
inglés
Estrellas
2
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
22 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
syncfusion-winforms-grid-grouping-control
description
Implements Syncfusion Windows Forms GridGroupingControl for advanced data management with grouping, sorting, filtering, and hierarchical display. Use this when working with multi-level grouping, master-detail grids, nested table relationships, or data summaries with aggregates. The skill covers group-by operations, Excel-like filtering, dynamic record filters, hierarchical data structures, and enterprise-level grid capabilities.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Implementing Grid Grouping Controls Comprehensive guide for implementing Syncfusion® Windows Forms GridGroupingControl - an enterprise-level grid component with built-in support for hierarchical grouping, filtering, multi-column sorting, summaries, and complex data relationships. ## When to Use This Skill Use this skill when you need to: - **Implement GridGroupingControl** in Windows Forms applications - **Display hierarchical or grouped data** with automatic grouping by one or more columns - **Create master-detail relationships** with nested tables and child relations - **Apply advanced filtering** (Excel-like, dynamic, or programmatic filters) - **Add data summaries** (group summaries, caption summaries, table summaries) - **Sort data** by single or multiple columns with custom sorting logic - **Handle large datasets** with virtualization and performance optimization - **Export grouped data** to Excel, PDF, CSV, HTML, or Word - **Customize grid appearance** with conditional formatting and styling - **Bind to various data sources** (DataTable, XML, collections, dynamic objects) This skill is essential for applications requiring sophisticated data grouping, drill-down capabilities, and comprehensive data management features. ## Component Overview **GridGroupingControl** is a powerful data grid component that extends standard grid functionality with: - **Hierarchical Grouping:** Organize data into nested groups based on field values - **Group Drop Area:** Interactive area for drag-and-drop grouping by column headers - **Multi-Level Sorting:** Sort by multiple columns with custom sort logic - **Advanced Filtering:** Excel-like filters, dynamic filters, and programmatic record filters - **Summaries:** Column summaries, group summaries, and caption summaries with aggregates - **Master-Detail Support:** Display nested tables with parent-child relationships - **Data Virtualization:** Handle millions of records with instant scrolling - **Rich Editing:** In-place editing with validation and custom editors - **Flexible Styling:** Conditional formatting, themes, and cell-level customization The control is designed for business applications requiring enterprise-level data management capabilities. ## Documentation and Navigation Guide ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Installation and assembly deployment - Creating GridGroupingControl through Designer and Code - Basic data source binding - Populating data and first grid example - Essential properties and initial configuration ### Data Binding and Sources 📄 **Read:** [references/data-binding.md](references/data-binding.md) - ADO.NET data binding (DataTable, DataSet, DataView) - XML data binding with ReadXml/WriteXml - Custom collections (IList, IBindingList, ITypedList) - Strongly typed collections and generic collections - Dynamic object binding for .NET 4.0+ - Unbound mode with custom columns - Collection interfaces and change notifications **When to read:** Setting up data sources, binding to databases, working with custom objects, or implementing unbound scenarios. ### Grouping Features 📄 **Read:** [references/grouping.md](references/grouping.md) - Adding data groups (Designer and programmatic) - GroupDropArea configuration and customization - Multi-column grouping and nested groups - Custom grouping with IComparer and IGroupByColumnCategorizer - GroupBy options (headers, footers, preview rows) - GroupCaptionSection and caption text tokens - Working with groups (expand/collapse, iterate, access) - Grouping events and customization **When to read:** Implementing grouping functionality, customizing group appearance, working with nested groups, or handling group-related events. ### Sorting Operations 📄 **Read:** [references/sorting.md](references/sorting.md) - Programmatic sorting with SortedColumns collection - Multi-column sorting with precedence - Sort icon placement and customization - Removing and clearing sorting - Sorting grouped columns - Sort by summary values - Sort by display member (foreign key relations) - Custom sorting with IComparer - Sorting events (Changing/Changed) **When to read:** Implementing sorting features, customizing sort behavior, sorting by computed values, or handling sort events. ### Filtering and Search 📄 **Read:** [references/filtering.md](references/filtering.md) - Setting up filter bar for user filtering - Record filters (programmatic filtering) - Filter by expression with operators - Dynamic filter with GridDynamicFilter - Excel-like filter (Optimized and Office2007) - Filter by color, number, date, and null values - Filter by display member vs value member - Stacked header filtering - Getting filtered records and filter strings - Filtering events **When to read:** Implementing filtering capabilities, Excel-like filtering UI, programmatic data filtering, or filter customization. ### Summaries and Aggregates 📄 **Read:** [references/summaries.md](references/summaries.md) - Summary types (Column, Group, Table, Caption) - Adding summaries with SummaryDescriptor - Built-in aggregate functions (Sum, Average, Count, Min, Max) - Custom summaries with ISummaryAggregate - Sort by summary values - Summary appearance and formatting - Summary in group captions - Summary events **When to read:** Adding aggregate calculations, displaying group totals, implementing custom aggregates, or showing summaries in captions. ### Relations and Hierarchy 📄 **Read:** [references/relations-and-hierarchy.md](references/relations-and-hierarchy.md) - Master-detail relationships setup - Nested tables configuration - Relations descriptor and child table descriptor - Hierarchy display and navigation - Expand/collapse nested tables - Working with child tables programmatically - Foreign key reference relations **When to read:** Implementing master-detail grids, displaying nested data, configuring parent-child relationships, or working with hierarchical data. ### Editing Capabilities 📄 **Read:** [references/editing.md](references/editing.md) - Enabling/disabling editing - Cell editing modes and activation - Current cell behavior - Data validation - Editing events (StartEditing, EditingComplete) - Custom editors and cell types - AddNew record functionality **When to read:** Configuring edit behavior, implementing validation, customizing editors, or handling edit events. ### Selection Features 📄 **Read:** [references/selections.md](references/selections.md) - Selection modes (None, One, Multiple, MultiSimple, MultiExtended) - Record selection vs cell selection - Programmatic selection - Getting selected records - Selection events - Selection appearance **When to read:** Implementing selection functionality, programmatic record selection, or customizing selection behavior. ### Column Management 📄 **Read:** [references/column-management.md](references/column-management.md) - Adding/removing columns programmatically - Column properties (Width, HeaderText, MappingName) - Column width and auto-sizing - Column visibility and VisibleColumns collection - Column reordering and drag-drop - Frozen columns - Unbound columns **When to read:** Managing column visibility, configuring column properties, implementing frozen columns, or adding unbound columns. ### Appearance and Styling 📄 **Read:** [references/appearance-and-formatting.md](references/appearance-and-formatting.md) - Cell styles and GridStyleInfo - Conditional formatting - Themes and visual styles - Row and column appearance - QueryCellStyleInfo event for dynamic styling - Appearance properties for different cell types - BackColor, ForeColor, Font customization **When to read:** Customizing grid appearance, applying conditional formatting, implementing themes, or styling specific cells. ### Cell Types and Customization 📄 **Read:** [references/cell-types.md](references/cell-types.md) - Built-in cell types (TextBox, ComboBox, CheckBox, Image) - ComboBox cells with DataSource - CheckBox cells for boolean data - Image cells for displaying graphics - Custom cell types and renderers - Cell type configuration **When to read:** Implementing dropdown lists, checkboxes, image cells, or creating custom cell renderers. ### Grid Layout 📄 **Read:** [references/grid-layout.md](references/grid-layout.md) - Row and column sizing (auto-size, fit) - Stacked headers for grouped column headers - Covered ranges (merged cells) - Grid borders and lines - Layout customization and spacing **When to read:** Configuring row heights, implementing stacked headers, merging cells, or customizing grid layout. ### Navigation and Scrolling 📄 **Read:** [references/navigation-and-scrolling.md](references/navigation-and-scrolling.md) - Navigation bar configuration - Scrolling options and behavior - Keyboard navigation - Current cell navigation - ScrollControlIntoView methods **When to read:** Configuring navigation behavior, customizing keyboard shortcuts, or implementing programmatic navigation. ### Clipboard Operations 📄 **Read:** [references/clipboard-operations.md](references/clipboard-operations.md) - Copy/paste operations - Clipboard formats (Text, CSV, HTML) - Cut operations - Clipboard customization - CopyPaste events **When to read:** Implementing copy/paste functionality, customizing clipboard formats, or handling clipboard events. ### Exporting Data 📄 **Read:** [references/exporting.md](references/exporting.md) - Excel export with ExcelExportingOptions - PDF export with PdfExportingOptions - CSV export - HTML export - Word export - Export options and customization **When to read:** Implementing data export features, customizing export formats, or configuring export options. ### Printing 📄 **Read:** [references/printing.md](references/printing.md) - Print configuration and setup - Print preview - Print settings (margins, orientation, scaling) - Custom print layouts - PrintDocument integration **When to read:** Implementing print functionality, customizing print layouts, or configuring print settings. ### Performance Optimization 📄 **Read:** [references/performance.md](references/performance.md) - Virtualization for large datasets - Handling millions of records - Performance optimization tips - Best practices for data binding - Memory management **When to read:** Optimizing grid performance, handling large datasets, or troubleshooting performance issues. ### Events Reference 📄 **Read:** [references/events.md](references/events.md) - Data-related events (QueryValue, SaveValue) - UI interaction events (CellClick, CellDoubleClick) - Grouping events (GroupExpanding, GroupExpanded) - Sorting events (SortedColumns.Changing/Changed) - Filtering events (RecordFilters.Changing/Changed) - Editing events (CurrentCellStartEditing, EditingComplete) - Complete event reference with examples **When to read:** Handling grid events, implementing event-driven logic, or responding to user interactions. ### Advanced Features 📄 **Read:** [references/advanced-features.md](references/advanced-features.md) - Expression fields for calculated columns - Data validation rules - Find and replace functionality - Serialization (Binary, SOAP, XML) - Touch support for tablets - Zooming capabilities **When to read:** Implementing calculated columns, validation rules, find/replace, serialization, or touch support. ### Troubleshooting 📄 **Read:** [references/troubleshooting.md](references/troubleshooting.md) - Common issues and solutions - Performance troubleshooting - Data binding issues - UI rendering problems - Best practices and guidelines **When to read:** Debugging issues, resolving errors, or optimizing implementation. ## Quick Start Example Here's a minimal example to get started with GridGroupingControl: ```csharp using Syncfusion.Windows.Forms.Grid.Grouping; using System.Data; // Create the control GridGroupingControl gridGroupingControl1 = new GridGroupingControl(); gridGroupingControl1.Dock = DockStyle.Fill; this.Controls.Add(gridGroupingControl1); // Create sample data DataTable dataTable = new DataTable("Employees"); dataTable.Columns.Add("ID", typeof(int)); dataTable.Columns.Add("Name", typeof(string)); dataTable.Columns.Add("Department", typeof(string)); dataTable.Columns.Add("Salary", typeof(decimal)); dataTable.Rows.Add(1, "John Smith", "Sales", 50000); dataTable.Rows.Add(2, "Sarah Jones", "Marketing", 55000); dataTable.Rows.Add(3, "Mike Wilson", "Sales", 52000); dataTable.Rows.Add(4, "Lisa Brown", "Marketing", 58000); dataTable.Rows.Add(5, "Tom Davis", "IT", 65000); // Bind data source gridGroupingControl1.DataSource = dataTable; // Enable grouping with GroupDropArea gridGroupingControl1.ShowGroupDropArea = true; // Add a group by Department gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Department"); // Add a summary to show total salary per group GridSummaryColumnDescriptor summaryColumn = new GridSummaryColumnDescriptor(); summaryColumn.DataMember = "Salary"; summaryColumn.SummaryType = SummaryType.DoubleAggregate; summaryColumn.Format = "{Sum:C}"; summaryColumn.Name = "TotalSalary"; GridSummaryRowDescriptor summaryRow = new GridSummaryRowDescriptor(); summaryRow.SummaryColumns.Add(summaryColumn); gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow); // Enable sorting gridGroupingControl1.TableOptions.AllowSortColumns = true; ``` This creates a grouped grid with department grouping and salary summaries. ## Common Patterns ### Master-Detail Pattern with Nested Tables ```csharp // Assuming Orders and OrderDetails are related tables in a DataSet DataSet dataSet = GetOrdersDataSet(); // Your data source // Bind to parent table gridGroupingControl1.DataSource = dataSet; gridGroupingControl1.DataMember = "Orders"; // Nested tables are automatically detected from DataSet relations // Customize child table appearance GridRelationDescriptor relation = gridGroupingControl1.TableDescriptor.Relations[0]; relation.ChildTableDescriptor.Appearance.AlternateRecordFieldCell.BackColor = Color.LightBlue; ``` ### Dynamic Filtering Pattern ```csharp using Syncfusion.GridHelperClasses; // Wire dynamic filter GridDynamicFilter dynamicFilter = new GridDynamicFilter(); dynamicFilter.WireGrid(gridGroupingControl1); // Enable filter bar gridGroupingControl1.TopLevelGroupOptions.ShowFilterBar = true; // Enable filtering for specific columns foreach (GridColumnDescriptor column in gridGroupingControl1.TableDescriptor.Columns) { column.AllowFilter = true; } ``` ### Excel-Like Filtering Pattern ```csharp using Syncfusion.GridHelperClasses; // Create and wire Excel filter GridExcelFilter excelFilter = new GridExcelFilter(); excelFilter.AllowSearch = true; // Enable search in filter dropdown excelFilter.AllowResize = true; // Allow resizing filter popup excelFilter.EnableNumberFilter = true; // Enable number filters excelFilter.EnableDateFilter = true; // Enable date filters excelFilter.AllowFilterByColor = true; // Enable filter by cell color excelFilter.WireGrid(gridGroupingControl1); ``` ### Programmatic Grouping Pattern ```csharp // Multi-level grouping gridGroupingControl1.TableDescriptor.GroupedColumns.Add("Country"); gridGroupingControl1.TableDescriptor.GroupedColumns.Add("City"); // Customize group options gridGroupingControl1.TopLevelGroupOptions.ShowCaption = true; gridGroupingControl1.TopLevelGroupOptions.ShowGroupHeader = true; gridGroupingControl1.TopLevelGroupOptions.ShowGroupFooter = true; // Customize caption text with tokens gridGroupingControl1.ChildGroupOptions.CaptionText = "{CategoryName}: {Category} ({RecordCount} items)"; ``` ### Conditional Formatting Pattern ```csharp // Apply conditional formatting based on cell value gridGroupingControl1.QueryCellStyleInfo += (sender, e) => { if (e.TableCellIdentity.TableCellType == GridTableCellType.RecordFieldCell) { if (e.TableCellIdentity.Column.Name == "Salary") { decimal salary = Convert.ToDecimal(e.Style.CellValue); if (salary > 60000) { e.Style.BackColor = Color.LightGreen; e.Style.Font.Bold = true; } else if (salary < 40000) { e.Style.BackColor = Color.LightCoral; } } } }; ``` ### Summary Pattern ```csharp // Count summary GridSummaryColumnDescriptor countColumn = new GridSummaryColumnDescriptor( "Count", SummaryType.Count, "ID", "{Count}"); summaryRow.SummaryColumns.Add(countColumn); // Average summary GridSummaryColumnDescriptor avgColumn = new GridSummaryColumnDescriptor( "Average", SummaryType.DoubleAggregate, "Salary", "Avg: {Average:C}"); summaryRow.SummaryColumns.Add(avgColumn); // Total summary GridSummaryColumnDescriptor sumColumn = new GridSummaryColumnDescriptor( "Total", SummaryType.DoubleAggregate, "Salary", "Total: {Sum:C}"); summaryRow.SummaryColumns.Add(sumColumn); gridGroupingControl1.TableDescriptor.SummaryRows.Add(summaryRow); ``` ## Key Properties ### Core Properties
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub