Tree Select

A searchable hierarchy picker that opens a tree in a popover below a select-style trigger, with single selection or cascading multi-selection stored as stable string keys.

Single Selection

Supply nested objects through Items and three selectors: ValueField for a stable key, TextField for the label, and ChildrenProperty for the branch. Keys must be unique across the whole hierarchy, not just among siblings. Enter selects a node and closes the popup; Space expands or collapses a branch without selecting it.

Multiple Selection with Cascading Checkboxes

Set Multiple and every node gets a checkbox. Checking a parent reaches every descendant — including collapsed branches and nodes hidden by the current search. A partly checked parent shows an indeterminate box (aria-checked="mixed"). With LeafOnly only leaf keys land in Values, which is usually what you want to store.

Leaf Only, No Search, Disabled

In single mode LeafOnly makes branch rows unselectable — clicking one leaves the value alone and keeps the popup open. Turn off ShowSearch for small trees and Clearable when the field is mandatory. A disabled picker keeps its caption but cannot be opened.

Inside an EditForm

Both modes integrate with EditContextValueExpression in single mode and ValuesExpression in multiple mode, supplied automatically by the bindings. Every change notifies the field, and the trigger gets aria-invalid="true" while it has messages.