All projects

Hierarchical data control

TreeDataGrid

A tree and a table, resolved into one efficient control.

StatusMaintained
TierFlagship
DomainControls
Repositorywieslawsoltes/TreeDataGrid

An Avalonia control that presents hierarchical and tabular data together with flat and tree modes, configurable virtualization buffers, retained-row lifecycle hooks, displayed-row lookup, layout diagnostics, and selection models.

TreeDataGrid combines hierarchical expansion with tabular columns and virtualized presentation. The model layer supports flat and hierarchical sources, typed columns, sorting, selection, displayed-row lookup, while opt-in buffers, retained-element lifecycle hooks, and layout diagnostics make virtualization tunable and observable.

01

Hierarchical and flat modes

02

Code or XAML columns

03

Selection and displayed-row lookup

04

Buffered virtualization, lifecycle hooks, and diagnostics

Where it fits.

  • File explorers and object browsers
  • Hierarchical business data
  • Apps that need tree semantics with table density
Hierarchical source

Supported

Flat source

Supported

Virtualization

Supported

XAML columns

Supported

Real output,
not a mockup.

TreeDataGrid file explorer sample
Hierarchical rows and table columns share one virtualized surface.
TreeDataGrid countries sample
The same control also operates as a flat tabular grid.

Clear layers.
Replaceable seams.

01

Model

Application state stays in portable domain objects and view models.

02

Control

Avalonia controls expose focused properties, commands, and events.

03

Theme

Templates and styles make the surface adaptable to each application.

2 modesflat and hierarchical
Virtualizeddata presentation
Typedcolumn models
LiveGitHub metadata

From package
to first frame.

Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.

01 · Install
Terminal
dotnet add package TreeDataGrid
02 · Use · xml
MainWindow.axaml
<TreeDataGrid ItemsSource="{Binding People}">
<TreeDataGridTextColumn Header="Name" Binding="{Binding Name}" />
<TreeDataGridTextColumn Header="Role" Binding="{Binding Role}" />
</TreeDataGrid>

Start focused.
Compose as needed.

The repository is the source of truth.

Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.

Core2D

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…