Skip to content

feat: data table for MAUI and Avalonia - #19

Merged
Shewart merged 2 commits into
mainfrom
feat/data-table
Oct 12, 2026
Merged

Shewart merged 2 commits into
mainfrom
feat/data-table

Conversation

@Shewart

@Shewart Shewart commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds data-table (DataTable, DataTableColumn) for MAUI and Avalonia: a Table filled from a list of objects. The registry now has 103 entries (100 CLI targets, 69 families).

  • Data: fills from any list and follows an ObservableCollection as it changes. Each column names the item property it shows, with an optional format string.
  • Filter: a field above the table; every typed word must match some column.
  • Sort: a sortable header cycles ascending, descending and unsorted; numbers and dates sort by value.
  • Selection: an optional checkbox column, with a header checkbox that selects every filtered row.
  • Pages: Previous / Next with a page size.

Both demos show it with twelve sample invoices, and the docs cover it.

Notes

  • Columns read properties by name at run time, which trimming can remove. A Value function set in code is the trim-safe alternative; the docs show it.
  • Not ported from the Blazor version: row action menus and server-side paging. Cells show text only.
  • It depends on table, input, checkbox and button, which add data-table installs.
  • On Avalonia, sortable headers are tab stops and keep focus after a keyboard sort, and a click on a row's checkbox does not raise RowTapped.

Verification

  • 984 tests pass; format is clean.
  • The MAUI demo (Windows target) and the Avalonia demo build with 0 warnings and 0 errors.
  • data-table installs alone into a fresh Avalonia app and a fresh dotnet new maui app (Windows target), building with 0 warnings.
  • MAUI demo checked on Windows in dark and light.
  • Avalonia demo checked on Windows in dark and light with pointer and key input.

data-table (DataTable, DataTableColumn): a Table filled from a list of
objects, for MAUI and Avalonia.

- Fills from any list and follows an ObservableCollection as it changes.
  Each column names the item property it shows, with an optional format.
- A filter field: every typed word must match some column.
- Sortable headers cycle ascending, descending and unsorted; numbers and
  dates sort by value.
- An optional checkbox column, with a header checkbox that selects every
  filtered row.
- Pages with Previous / Next.

Columns read properties by name at run time; a Value function set in
code is the alternative for trimmed apps. Row actions and server-side
paging from the Blazor version are not ported, and cells show text only.

On Avalonia, sortable headers are tab stops and keep focus after a
keyboard sort.
@github-actions github-actions Bot added documentation Improvements or additions to documentation templates examples labels Oct 12, 2026
@Shewart
Shewart merged commit 1a1bbf2 into main Oct 12, 2026
7 checks passed
@Shewart
Shewart deleted the feat/data-table branch October 12, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation examples templates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant