Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Explore the interactive `WinUI.TableView` samples with code snippets in a Sample
- **Copy row or cell content**: TableView allows you to copy rows or cells content, with the option to include or exclude column headers.
- **Editing**: Modify cell content directly within the TableView by double tapping on a cell. [Learn more →](https://w-ahmad.dev/WinUI.TableView/docs/editing.html)
- **Sorting**: Offers built in column sorting. [Learn more →](https://w-ahmad.dev/WinUI.TableView/docs/sorting.html)
- **Grouping**: Multi-level column grouping with expand/collapse and full sort integration (Windows only). [Learn more →](https://w-ahmad.dev/WinUI.TableView/docs/grouping.html)
- **Excel-like Column Filter**: TableView allows you to filter data within columns with an excel like flyout to enhance data exploration and analysis. [Learn more →](https://w-ahmad.dev/WinUI.TableView/docs/filtering.html)
- **Export functionality**: Built-in export functionality to export data to CSV format. This feature can be enabled by setting the `ShowExportOptions = true`. [Learn more →](https://w-ahmad.dev/WinUI.TableView/docs/export.html)
- **Grid Lines**: Display grid lines to improve data visibility and organization.
Expand Down Expand Up @@ -166,7 +167,7 @@ You can customize the appearance and behavior of the `TableView` by modifying it

- **Column Customization**: Define custom columns based on data types.
- **Is ReadOnly**: You can make any column or the TableView itself read only.
- **Sorting and Filtering**: Enable sorting and filtering on specific columns or for the all columns.
- **Sorting, Grouping, and Filtering**: Enable sorting, grouping, and filtering on specific columns or for the all columns.
- **Corner Button Mode**: Use the `CornerButtonMode` property to configure the corner button's behavior. You can select from:
- `None`: No corner button.
- `SelectAll`: Displays a "Select All" button.
Expand Down Expand Up @@ -222,6 +223,7 @@ Full documentation is available at **[w-ahmad.dev/WinUI.TableView](https://w-ahm
- [Binding Data](https://w-ahmad.dev/WinUI.TableView/docs/binding-data.html)
- [Editing](https://w-ahmad.dev/WinUI.TableView/docs/editing.html)
- [Sorting](https://w-ahmad.dev/WinUI.TableView/docs/sorting.html)
- [Grouping](https://w-ahmad.dev/WinUI.TableView/docs/grouping.html)
- [Filtering](https://w-ahmad.dev/WinUI.TableView/docs/filtering.html)
- [Selection](https://w-ahmad.dev/WinUI.TableView/docs/selection.html)
- [Styling & Theming](https://w-ahmad.dev/WinUI.TableView/docs/styling.html)
Expand Down
2 changes: 2 additions & 0 deletions docs/docs/accessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,12 +166,14 @@ To override the automation name of a column header (for example, to provide a lo
- **IValueProvider on cells**: `IValueProvider` is not implemented on the cell peer. Instead, the editing element (for example, a `TextBox`) exposes `IValueProvider` while the cell is in edit mode.
- **Custom column types**: cells in `TableViewTemplateColumn` show developer-defined content. Accessible names for those cells default to the column header and row index unless the template explicitly sets `AutomationProperties.Name`.
- **Non-Windows platforms**: automation peers are compiled and run on all platforms (WinUI and Uno Platform). However, not all Uno Platform targets expose a full UIA tree to assistive technologies. On WebAssembly (WASM), the platform relies on ARIA attributes managed by Uno. On Desktop Skia targets, accessibility support depends on the native platform's accessibility APIs.
- **Group headers**: [`TableViewGroupHeaderRow`](xref:WinUI.TableView.TableViewGroupHeaderRow) does not have a dedicated automation peer; it relies on the base `ListViewHeaderItem` automation behavior. Its default automation name is derived from the group's key ([`TableViewGroupInfo.Key`](xref:WinUI.TableView.TableViewGroupInfo.Key)), not the item count shown in the UI.

## Related articles

- [Selection](selection.md)
- [Editing](editing.md)
- [Sorting](sorting.md)
- [Grouping](grouping.md)
- [Filtering](filtering.md)
- [Row details](row-details.md)
- [Row headers](row-headers.md)
Expand Down
2 changes: 2 additions & 0 deletions docs/docs/aot-compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,12 +156,14 @@ Enable AOT and set the CsWinRT warning level to catch any remaining issues at bu
- Only WinUI (Windows App SDK) targets support Native AOT publishing. Uno Platform targets have their own AOT characteristics — consult the [Uno Platform documentation](https://platform.uno/docs/articles/uno-development/aot-compilation.html) for those targets.
- `AutoGenerateColumns="True"` uses reflection to discover properties. This works with the attribute in place, but for maximum AOT compatibility prefer explicit columns (`AutoGenerateColumns="False"`).
- `SortMemberPath` uses reflection-based property access when set. Ensure the model has the attribute when using `SortMemberPath`.
- [Grouping](grouping.md) is built on the same `SortDescription`-derived reflection path as sorting - grouping by a bound column's property (rather than its rendered cell content) needs the same model attribute.

## Related articles

- [Binding data](binding-data.md)
- [Defining columns](defining-columns.md)
- [Column types](column-types.md)
- [Grouping](grouping.md)
- [Performance guidance](performance.md)
- [.NET Native AOT deployment overview](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/)
- [C#/WinRT overview](https://learn.microsoft.com/en-us/windows/apps/develop/platform/csharp-winrt/)
Expand Down
21 changes: 21 additions & 0 deletions docs/docs/commands-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ This page lists all public events exposed by `TableView` and related types.
| [`Sorting`](xref:WinUI.TableView.TableView.Sorting) | [`TableViewSortingEventArgs`](xref:WinUI.TableView.TableViewSortingEventArgs) | Fires before the default sort runs. Set `Handled = true` for custom sort. |
| [`ClearSorting`](xref:WinUI.TableView.TableView.ClearSorting) | [`TableViewClearSortingEventArgs`](xref:WinUI.TableView.TableViewClearSortingEventArgs) | Fires when a column's sort direction is cleared. |

### Grouping (Windows only)

| Event | Args type | Description |
|---|---|---|
| [`Grouping`](xref:WinUI.TableView.TableView.Grouping) | [`TableViewGroupingEventArgs`](xref:WinUI.TableView.TableViewGroupingEventArgs) | Fires before a column's **Group** option runs the default group/ungroup action. Set `Handled = true` for custom behavior. |

### Clipboard and export

| Event | Args type | Description |
Expand Down Expand Up @@ -112,6 +118,13 @@ This page lists all public events exposed by `TableView` and related types.
| `Column` | [`TableViewColumn`](xref:WinUI.TableView.TableViewColumn) | The column being sorted |
| `Handled` (inherited) | `bool` | Set `true` to suppress default sort |

### TableViewGroupingEventArgs

| Property | Type | Description |
|---|---|---|
| `Column` | [`TableViewColumn`](xref:WinUI.TableView.TableViewColumn) | The column being grouped |
| `Handled` (inherited) | `bool` | Set `true` to suppress default grouping |

### TableViewCopyToClipboardEventArgs

| Property | Type | Description |
Expand Down Expand Up @@ -206,11 +219,19 @@ This page lists all public events exposed by `TableView` and related types.
| `Cells` | Cell content width only |
| [`Header`](xref:WinUI.TableView.TableViewColumnAutoWidthMode.Header) | Header content width only |

### TableViewGroupState

| Value | Description |
|---|---|
| `Expanded` | Newly created groups start expanded |
| `Collapsed` | Newly created groups start collapsed |

## Related articles

- [Editing](editing.md)
- [Selection](selection.md)
- [Sorting](sorting.md)
- [Grouping](grouping.md)
- [Filtering](filtering.md)
- [Clipboard and copy/paste](clipboard.md)
- [Export to CSV](export.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/datagrid-feature-comparison.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ WinUI.TableView is actively maintained and continues to add new features based o
| Delete row | ✅ | ❌ | ❌ | |
| Sorting | ✅ | ⚠️ | ✅ | No built-in sorting in WCT DataGrid but exposes sorting events. |
| Filtering | ⚠️ | ❌ | ✅ | WPF commonly uses collection view/app logic. WCT docs explicitly say there is no built-in filtering. TableView provides Excel-like column filtering. |
| Grouping | ✅ | ✅ | ❌ | |
| Grouping | ✅ | ✅ | ✅ | Multi-level grouping with expand/collapse and sort integration. Windows-only; not available on non-Windows Uno targets. |
| Row selection | ✅ | ✅ | ✅ | |
| Cell selection | ✅ | ❌ | ✅ | |
| Clipboard copy | ✅ | ✅ | ✅ | |
Expand Down
2 changes: 2 additions & 0 deletions docs/docs/getting-started-with-uno.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ Build and run your application. You should see `WinUI.TableView` populated with

### Known limitations on Uno targets

- **Grouping is not available.** [Column grouping](grouping.md) is a Windows-only feature; `CanGroupColumns` and the column header's "Group" option have no effect on non-Windows Uno targets.
- `AutoGenerateColumns="True"` uses reflection to discover model properties. This works on all Uno targets but is slower than explicit column definitions on first load.
- The filter flyout UI renders using the same XAML as the Windows target. On small-screen targets (phone), the flyout may extend beyond the visible area. Consider disabling the filter flyout (`CanFilterColumns="False"`) on those form factors.
- Row details expand/collapse animation may not be as smooth on Skia targets compared to Windows.
Expand All @@ -166,6 +167,7 @@ Build and run your application. You should see `WinUI.TableView` populated with

- [Installation and quick start](getting-started.md)
- [Overview and concepts](overview.md)
- [Grouping](grouping.md)
- [Performance guidance](performance.md)
- [Accessibility](accessibility.md)
- [Native AOT compatibility](aot-compatibility.md)
Loading
Loading