Skip to content

docs: add complete how-to documentation for all TableView features#391

Merged
w-ahmad merged 23 commits into
mainfrom
w-ahmad-docs-complete-feature-documentation
Jul 4, 2026
Merged

docs: add complete how-to documentation for all TableView features#391
w-ahmad merged 23 commits into
mainfrom
w-ahmad-docs-complete-feature-documentation

Conversation

@w-ahmad

@w-ahmad w-ahmad commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Summary

This PR adds a complete, task-based documentation set for every WinUI.TableView feature. All docs are based on direct inspection of the source code, XML comments, existing docs, and README content.

What's new

22 new documentation files

File Content
overview.md Architecture, key concepts, namespace reference
binding-data.md ObservableCollection, INotifyPropertyChanged, live shaping
defining-columns.md AutoGenerateColumns, explicit columns, AutoGeneratingColumn event
column-types.md All 9 built-in column types with examples and property tables
column-sizing.md Width, GridLength, ColumnAutoWidthMode, min/max, row heights
sorting.md Built-in sort, SortDescriptions, Sorting/ClearSorting events
filtering.md Filter flyout, FilterDescriptions, ShowFilterItemsCount, custom handler
editing.md Full lifecycle: BeginningEditPreparingCellForEditCellEditEndingCellEditEnded
selection.md SelectionMode, SelectionUnit, CellSlot, CellSelectionChanged
row-headers.md HeadersVisibility, RowHeaderTemplate, sizing
row-details.md RowDetailsTemplate, RowDetailsVisibilityMode, AreRowDetailsFrozen
frozen-columns.md FrozenColumnCount
column-reordering.md CanReorderColumns, ColumnReordering/ColumnReordered events
clipboard.md CanCopy, CanPaste, CopyToClipboard, PasteFromClipboard
export.md ShowExportOptions, ExportAllContent/ExportSelectedContent
styling.md CellStyle, ColumnHeaderStyle, ElementStyle, grid lines, alternate rows
conditional-styling.md ConditionalCellStyles, TableViewConditionalCellStyle, predicate
context-flyouts.md RowContextFlyout, CellContextFlyout, opening events
commands-events.md Full events/args/enums reference table
performance.md Virtualization, live shaping, large dataset tips
migration-wpf.md WPF DataGrid property/event/column type mapping tables
migration-wct.md WCT DataGrid property/event/column type mapping tables
feature-index.md Feature index with common scenario quick-links

Updated files

  • docs/index.md — Rewritten with quick start example, feature table, and links to all doc sections
  • docs/docs/toc.yml — Full grouped navigation: Getting Started, Data, Interaction, Layout, Data Operations, Appearance, Reference, Migration

Documentation style

Each feature doc follows the Microsoft Learn WPF DataGrid documentation style:

  • Short explanation of what the feature does
  • When to use it
  • Basic XAML/C# examples
  • Property/event reference table
  • Advanced example where useful
  • Notes and limitations based on the actual implementation
  • Related articles links

Validation

  • All 22 new files listed in toc.yml
  • All internal [text](link.md) links resolve to existing files ✅
  • All API names, property names, event names, and enum values verified against source code ✅
  • Existing docs preserved unchanged ✅

Closes #216

w-ahmad and others added 11 commits June 29, 2026 13:53
- Updated landing page (index.md) with quick start, feature table, and doc links
- Updated docs/toc.yml with full grouped navigation structure
- Added overview.md: architecture, key concepts, namespace reference
- Added binding-data.md: ObservableCollection, INotifyPropertyChanged, live shaping
- Added defining-columns.md: AutoGenerateColumns, explicit columns, AutoGeneratingColumn event
- Added column-types.md: all 9 built-in column types with examples and property tables
- Added column-sizing.md: Width, GridLength, ColumnAutoWidthMode, min/max, row heights
- Added sorting.md: built-in sort, SortDescriptions, Sorting/ClearSorting events
- Added filtering.md: filter flyout, FilterDescriptions, ShowFilterItemsCount, custom handler
- Added editing.md: full lifecycle (BeginningEdit, PreparingCellForEdit, CellEditEnding, CellEditEnded)
- Added selection.md: SelectionMode, SelectionUnit, CellSlot, CellSelectionChanged
- Added row-headers.md: HeadersVisibility, RowHeaderTemplate, sizing
- Added row-details.md: RowDetailsTemplate, RowDetailsVisibilityMode, AreRowDetailsFrozen
- Added frozen-columns.md: FrozenColumnCount
- Added column-reordering.md: CanReorderColumns, ColumnReordering/Reordered events
- Added clipboard.md: CanCopy, CanPaste, CopyToClipboard, PasteFromClipboard events
- Added export.md: ShowExportOptions, ExportAllContent/ExportSelectedContent events
- Added styling.md: CellStyle, ColumnHeaderStyle, ElementStyle, grid lines, alternate rows
- Added conditional-styling.md: ConditionalCellStyles, TableViewConditionalCellStyle, predicate
- Added context-flyouts.md: RowContextFlyout, CellContextFlyout, opening events
- Added commands-events.md: full events/args/enums reference
- Added performance.md: virtualization, live shaping, auto-width, filtering tips
- Added migration-wpf.md: WPF DataGrid property/event/column mapping tables
- Added migration-wct.md: WCT DataGrid property/event/column mapping tables
- Added feature-index.md: feature index with common scenario quick-links

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace backtick-quoted API member names in prose and table cells with
DocFX xref links ([`Member`](xref:WinUI.TableView.ClassName.Member))
so readers can navigate directly to the generated API reference from
every mention of a property, event, enum type, or column class.

- 23 files updated (371 prose lines + 394 link substitutions)
- Links cover: TableView properties/events, column types and their
  properties, event args classes, enum types, helper types
- Code blocks are left untouched
- Already-linked text is not double-linked

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace broken file link (~/api/index.md) with an xref link to the
TableView API reference page, which is the correct DocFX entry point.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- column-reordering.md: add xrefs for TableViewColumn.CanReorder and TableViewColumn.Order
- sorting.md: replace SortDescriptions.Clear() with ClearAllSorting(); add RefreshSorting() docs; add xrefs for CanSort and SortDirection; update Common options table
- filtering.md: replace FilterDescriptions.Clear() with ClearAllFilters(); add ClearAllFilters() and RefreshFilter() sections; add xrefs for CanFilter and IsFiltered on TableViewColumn; update Common options table
- performance.md: add RefreshView(), RefreshSorting(), RefreshFilter() documentation with examples
- selection.md: expand Corner button section to document full Options flyout contents (SelectAll, DeselectAll, Copy, Copy with Headers, Paste, Clear Sorting, Clear Filter, Export All, Export Selected) and ShowExportOptions gate
- clipboard.md: update IncludeHeaders description to mention Ctrl+Shift+C shortcut; update Copying section
- migration-wpf.md: remove unverified 'Microsoft recommends' claim
- migration-wct.md: remove unverified 'archived Toolkit documentation recommends' claim
- toc.yml: remove Customization (Legacy) entry
- index.md: add Product model and Products property C# snippet after XAML quick start; remove redundant Features link list (keeping Key Features table and Getting Started / Migration links)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add link to Feature Index above the table
- Each feature row now links to the corresponding how-to doc
- Merged Grid lines + Alternate rows into a single Styling row
- Added Column reordering and Column sizing rows that were missing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Xref additions across feature docs:
- editing.md: xrefs for all BeginningEdit, PreparingCellForEdit, CellEditEnding event arg properties and TableViewEditAction enum values
- sorting.md: xrefs for TableViewSortingEventArgs.Column and TableViewClearSortingEventArgs.Column
- clipboard.md: xref for TableViewCopyToClipboardEventArgs.IncludeHeaders
- column-reordering.md: xrefs for event arg properties; correct TableViewColumnReorderedEventArgs to use Index property
- column-sizing.md: correct enum xrefs to use TableViewColumnAutoWidthMode.* UIDs
- conditional-styling.md: xrefs for TableViewConditionalCellStyleContext properties
- context-flyouts.md: xrefs for row/cell context flyout event arg properties; correct cell args to Slot/Item
- row-details.md: xrefs for TableViewRowDetailsVisibilityMode enum values
- row-headers.md: xrefs for TableViewHeadersVisibility enum values
- selection.md: xrefs for TableViewSelectionUnit and TableViewCornerButtonMode enum values; fix broken xref typo
- styling.md: xrefs for TableViewGridLinesVisibility enum values and column style properties
- defining-columns.md: xrefs for TableViewAutoGeneratingColumnEventArgs properties

Content corrections:
- migration-wct.md / migration-wpf.md: update intro wording
- migration-wct.md: remove unsupported feature rows that were incorrectly listed
- datagrid-feature-comparison.md: fix table column alignment
- index.md: fix Samples App URL; correct Auto-generating columns link to defining-columns.md; remove Feature Index link
- toc.yml: remove Feature Index entry

Removed legacy docs:
- customization.md deleted
- feature-index.md deleted

Added:
- docs/api/ regenerated YAML files for full API reference

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Trigger on pull_request (opened, synchronize, reopened, closed) in addition to push
- build job: skip on PR closed events (no-op); upload docs-site artifact on PR open/sync for preview download
- publish-docs job: runs independently on PR merged (closed + merged == true); self-contained build + deploy; no longer depends on build job
- push to main: still builds docs as a sanity check but does not deploy

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add 'Sorting by a different property (SortMemberPath)' section explaining when and how to use SortMemberPath
- Show examples for bound columns (formatted display vs raw sort value) and template columns (no Binding, explicit sort path)
- Explain the reflection vs cell-content fallback behavior
- Add SortMemberPath to Common options table
- Update Notes to mention SortMemberPath as the preferred way to enable sort on template columns

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Screenshots added:
- docs/images/tableview-overview.png -> index.md (intro)
- docs/images/sorting-column-header.png -> sorting.md (basic example)
- docs/images/filtering-flyout.png -> filtering.md (filter flyout section)
- docs/images/cell-selection.gif -> selection.md (SelectionUnit section)
- docs/images/column-reordering-drag.gif -> column-reordering.md (basic example)
- docs/images/row-headers-custom.png -> row-headers.md (custom template section)
- docs/images/row-details-expanded.png -> row-details.md (basic example)
- docs/images/styling-alternating-rows.png -> styling.md (alternating rows section)
- docs/images/conditional-styling-example.png -> conditional-styling.md (basic example)

User edits preserved:
- index.md: add dotnet CLI install option; simplify XAML snippet; switch Product to class with init properties
- conditional-styling.md: remove extra collection wrapper; update predicate to IsLowPrice/Price < 10 lambda style
- row-details.md: update template to Product model (Name, Price, InStock)
- row-headers.md: update custom template to FontIcon example
- styling.md: update AlternateRowBackground/Foreground to realistic dark-mode values

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR significantly expands the DocFX documentation set for WinUI.TableView, aiming to provide task-based guides for core TableView features (data binding, columns, sorting/filtering, editing, selection, styling, export, migration), and updates docs navigation plus CI behavior for doc builds.

Changes:

  • Added a comprehensive set of new feature-focused documentation pages under docs/docs/ and rewrote docs/index.md to act as a structured entry point.
  • Reworked docs/docs/toc.yml into grouped sections (Getting Started, Data, Interaction, Layout, etc.) to match the new doc set.
  • Updated GitHub Actions workflows to build docs on PRs (with an uploaded preview artifact) and adjusted CI triggers.

Reviewed changes

Copilot reviewed 28 out of 38 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
docs/index.md Rewritten landing page with quick start, feature table, and links into the new doc set
docs/docs/toc.yml Reorganized DocFX TOC into grouped navigation for the expanded documentation set
docs/docs/styling.md New styling guide (cell/header styles, grid lines, alternate rows)
docs/docs/sorting.md New sorting guide with SortMemberPath, events, and programmatic sorting
docs/docs/selection.md New selection guide (SelectionMode/SelectionUnit, current cell, corner button)
docs/docs/row-headers.md New row headers guide (visibility, templates/selectors, sizing)
docs/docs/row-details.md New row details guide (templates/selectors, visibility modes, freezing)
docs/docs/performance.md New performance guide (virtualization, live shaping, refresh, large dataset guidance)
docs/docs/overview.md New overview/concepts page describing architecture and key concepts
docs/docs/migration-wpf.md New WPF DataGrid migration mapping guide
docs/docs/migration-wct.md New WCT DataGrid migration mapping guide
docs/docs/frozen-columns.md New frozen columns guide
docs/docs/filtering.md New filtering guide (flyout, programmatic filters, handler)
docs/docs/export.md New CSV export guide
docs/docs/editing.md New editing guide (lifecycle, events, read-only, actions)
docs/docs/defining-columns.md New guide for auto-generated vs explicit columns and common column properties
docs/docs/datagrid-feature-comparison.md Minor table formatting tweak
docs/docs/context-flyouts.md New context flyouts guide (row/cell flyouts, opening events)
docs/docs/conditional-styling.md New conditional cell styling guide
docs/docs/commands-events.md New events/commands/enums reference page
docs/docs/column-types.md New column types reference page with examples and property tables
docs/docs/column-sizing.md New column sizing guide
docs/docs/column-reordering.md New column reordering guide and events
docs/docs/clipboard.md New clipboard/copy-paste guide
docs/docs/binding-data.md New binding/data source guide and CollectionView notes
docs/docs/customization.md Removed older customization page (superseded by new feature-specific docs)
.github/workflows/ci-docs.yml Builds docs on PRs and uploads a preview artifact; deploy remains push-only
.github/workflows/ci-build.yml Adjusted PR trigger behavior (no longer ignores docs/** on PRs)

Comment thread docs/index.md Outdated
Comment thread docs/docs/performance.md Outdated
Comment thread docs/docs/commands-events.md Outdated
Comment thread docs/docs/commands-events.md Outdated
Comment thread docs/docs/commands-events.md Outdated
Comment thread docs/docs/defining-columns.md Outdated
Comment thread docs/docs/column-types.md Outdated
Comment thread docs/docs/column-types.md Outdated
Comment thread docs/docs/column-reordering.md
Comment thread docs/docs/migration-wpf.md Outdated
w-ahmad and others added 12 commits July 4, 2026 11:03
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- New docs/docs/aot-compatibility.md covering:
  - When AOT/trimming guidance applies
  - The GeneratedBindableCustomProperty rule with clear bound vs template column breakdown
  - {Binding} requires attribute; {x:Bind} in templates does not
  - Plain POCO and CommunityToolkit.Mvvm examples
  - Nested model guidance
  - Project configuration (PublishAot, CsWinRTAotWarningLevel)
  - Links to .NET Native AOT docs, C#/WinRT, CommunityToolkit.Mvvm, and CsWinRT GitHub
- toc.yml: add Native AOT Compatibility under Reference group

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@w-ahmad w-ahmad merged commit 0e0bb9d into main Jul 4, 2026
7 checks passed
@w-ahmad w-ahmad deleted the w-ahmad-docs-complete-feature-documentation branch July 4, 2026 13:56
pull Bot pushed a commit to mavaddat/WinUI.TableView that referenced this pull request Jul 5, 2026
- Resolve toc.yml merge conflict: add Accessibility entry under the
  new grouped Reference section from the PR w-ahmad#391 docs overhaul
- Rewrite accessibility.md to match the Microsoft Learn / how-to style
  used by all new docs: xref links, 'When to use it', XAML/C# examples
  with tv: namespace prefix, 'Notes and limitations', 'Related articles'
- Replace tvs: with tv: namespace prefix throughout
- Add IValueProvider-on-edit-element note and Escape focus behaviour note
  (matching the fix made in the previous commit)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Documentation

2 participants