Tree View

The ArcadiaTreeView component renders a hierarchical tree structure from a list of TreeViewItem data. Nodes can be expanded, collapsed, and selected.

Basic Usage

<ArcadiaTreeView Items="treeData" OnItemClick="HandleItemClick" />

@code {
    private List<TreeViewItem> treeData = new()
    {
        new TreeViewItem
        {
            Id = "1",
            Text = "Documents",
            Icon = "folder",
            Children = new()
            {
                new TreeViewItem { Id = "1-1", Text = "Report.pdf", Icon = "file" },
                new TreeViewItem { Id = "1-2", Text = "Notes.txt", Icon = "file" }
            }
        },
        new TreeViewItem { Id = "2", Text = "Pictures", Icon = "folder" }
    };

    private void HandleItemClick(TreeViewItem item) { /* ... */ }
}

Expand All

<ArcadiaTreeView Items="treeData" ExpandAll="true" />

ArcadiaTreeView Parameters

ParameterTypeDefaultDescription
ItemsIReadOnlyList<TreeViewItem>?nullHierarchical tree data.
ChildContentRenderFragment?nullManual tree item content (as an alternative to Items).
ExpandAllboolfalseWhether all nodes are expanded by default.
Classstring?nullAdditional CSS class names.
Stylestring?nullInline CSS styles.

ArcadiaTreeView Events

EventTypeDescription
OnItemClickEventCallback<TreeViewItem>Fired when a tree item is clicked.

TreeViewItem Properties

PropertyTypeDefaultDescription
Idstring""Unique identifier for this tree item.
Textstring""Display text for this tree item.
Iconstring?nullOptional icon CSS class or name.
ChildrenList<TreeViewItem>new()Child items of this tree node.
ExpandedboolfalseWhether this node is expanded.
SelectedboolfalseWhether this node is selected.

ArcadiaTreeViewNode Parameters

ArcadiaTreeViewNode is used internally by ArcadiaTreeView to render each node recursively. It exposes:

ParameterTypeDefaultDescription
ItemTreeViewItemrequiredThe tree item data for this node.
OnItemClickEventCallback<TreeViewItem>Callback invoked when this item is clicked.
ExpandAllboolfalseWhether all nodes should be expanded by default.
Levelint0The nesting level of this node (0-based).

Accessibility

  • The root list uses role="tree".
  • Each node uses role="treeitem" with aria-expanded (for nodes with children) and aria-selected.
  • Child groups use role="group".
  • Each item is keyboard focusable (tabindex="0").
  • Keyboard support: Enter or Space to toggle expansion and select the node.
  • Chevron and spacer icons use aria-hidden="true".