Overview

BeepGridPro is the flagship data grid control, organized across multiple partial files. Internally, it decomposes functionality into 18 specialized helper classes, each handling a specific concern:

Helper Decomposition (18 Classes)

HelperClassResponsibility
LayoutGridLayoutHelperColumn/row sizing, header layout, scrollbar positioning
DataGridDataHelperData binding, value access, conversion
RenderGridRenderHelperCell painting, grid lines, header rendering
SelectionGridSelectionHelperMulti-select, cell/row/column selection state
InputGridInputHelperMouse clicks, hit testing, context menu
ScrollGridScrollHelperScroll position tracking, wheel handling
ScrollBarsGridScrollBarsHelperScrollbar visibility and sizing
SortFilterGridSortFilterHelperColumn sorting, filtering state
EditGridEditHelperCell editing mode, editor lifecycle
ThemeGridThemeHelperTheme token application
NavigatorGridNavigatorHelperKeyboard navigation, focus tracking
NavigatorPainterGridNavigationPainterHelperNavigation bar painting
SizingGridSizingHelperColumn resize, auto-size, DPI scaling
DialogGridDialogHelperFiltering dialogs, inline criterion menus
ClipboardGridClipboardHelperCopy/paste, CSV format
ColumnReorderGridColumnReorderHelperDrag-to-reorder columns
KeyboardNavigatorGridKeyboardNavigatorArrow keys, Tab, Home/End navigation
FocusManagerGridFocusManagerFocus tracking, accessibility

Data Flow

DataSource (object)
  └── GridDataHelper (Bind, GetValue, SetValue)
       ├── GridColumnConfigCollection (column definitions)
       ├── GridSortFilterHelper (sort/filter state)
       └── GridRenderHelper (paint cells)

Optional Virtualization:
  GridVirtualDataSource (IVirtualDataSource)
    └── GridRowVirtualizer (window management)
         └── GridDataHelper (fetch visible window)

Optional Grouping:
  GridGroupEngine
    └── IGridGrouper (sort + group)
         └── GridGroupSummaryRow (aggregate row)

Painting Pipeline

Grid painting is style-aware with 6 style families, each providing Header, Navigation, and Filter panel painters:

Style FamilyHeader PainterNavigation PainterFilter Panel Painter
AG GridAGGridHeaderPainterAGGridNavigationPainterAGGridFilterPanelPainter
Ant DesignAntDesignHeaderPainterAntDesignNavigationPainterAntDesignFilterPanelPainter
BootstrapBootstrapHeaderPainterBootstrapNavigationPainterBootstrapFilterPanelPainter
CardCardHeaderPainterCardNavigationPainterCardFilterPanelPainter
CompactCompactHeaderPainterCompactNavigationPainterCompactFilterPanelPainter
DataTablesDataTablesHeaderPainterDataTablesNavigationPainterDataTablesFilterPanelPainter

Advanced Features

  • Virtualization — Large datasets (millions of rows) via IVirtualDataSource
  • Selection — Cell, row, column, multi-range via ISelectionStrategy
  • Grouping — Multi-level grouping with aggregate summary rows
  • Filtering — Quick filter bar, advanced filter dialog, per-column filters
  • Export — CSV, JSON, HTML built-in; Excel/PDF stubs (plugin-extensible)
  • Editors — 7 cell editor types (Text, Numeric, Date, Combo, CheckBox, Masked, Generic)
  • Accessibility — UIA provider pattern, screen reader support, keyboard navigation

Code Example

var grid = new BeepGridPro();
grid.DataSource = myDataTable;
grid.RowHeight = 28;
grid.GridStyle = "Bootstrap";
grid.MultiSelect = true;
grid.AllowColumnReorder = true;

// Virtual mode
var source = GridVirtualDataSource.FromList(myMillionRows);
grid.RowVirtualizer.DataSource = source;

// Grouping
grid.GroupEngine.AddDescriptor(new GroupDescriptor("Category"));
grid.GroupEngine.AddDescriptor(new GroupDescriptor("Region"));

// Export
grid.ExportEngine.Export(ExportFormat.Csv, "data.csv");