New to Telerik UI for BlazorStart a free 30-day trial

Represents a Telerik UI for Blazor DropDownTree component that allows users to select a single value from a hierarchical tree structure displayed in a dropdown. Provides features like filtering, load-on-demand, custom templates, and adaptive mobile layouts for optimal user experience across all devices.

Definition

Namespace:Telerik.Blazor.Components

Assembly:Telerik.Blazor.dll

Type Parameters:

TValue

The type of the selected value used for binding. Must match the type of the property specified in ValueField.

Syntax:

C#
public class TelerikDropDownTree<TValue> : TelerikSelectBase<object, TValue>, IComponent, IHandleEvent, IHandleAfterRender, IDisposable, IPopupContainer

Inheritance: objectComponentBaseBaseComponentDataBoundComponent<object>TelerikSelectBase<object, TValue>TelerikDropDownTree<TValue>...

Implements: IComponentIDisposableIHandleAfterRenderIHandleEventIPopupContainer

Inherited Members TelerikSelectBase<object, TValue>.OnParametersSetAsync()TelerikSelectBase<object, TValue>.OnInitializedAsync()TelerikSelectBase<object, TValue>.Dispose()TelerikSelectBase<object, TValue>.FocusAsync()TelerikSelectBase<object, TValue>.Open()TelerikSelectBase<object, TValue>.Close()TelerikSelectBase<object, TValue>.Refresh()TelerikSelectBase<object, TValue>.DebounceChangeValue(string)TelerikSelectBase<object, TValue>.CascadedEditContextTelerikSelectBase<object, TValue>.FloatingLabelTelerikSelectBase<object, TValue>.DataSmartPasteDescriptionAttributeTelerikSelectBase<object, TValue>.IdTelerikSelectBase<object, TValue>.ValueFieldTelerikSelectBase<object, TValue>.TextFieldTelerikSelectBase<object, TValue>.GroupFieldTelerikSelectBase<object, TValue>.HeaderTemplateTelerikSelectBase<object, TValue>.FooterTemplateTelerikSelectBase<object, TValue>.NoDataTemplateTelerikSelectBase<object, TValue>.WidthTelerikSelectBase<object, TValue>.FilterableTelerikSelectBase<object, TValue>.TitleTelerikSelectBase<object, TValue>.SubtitleTelerikSelectBase<object, TValue>.AriaLabelTelerikSelectBase<object, TValue>.AriaLabelledByTelerikSelectBase<object, TValue>.AriaDescribedByTelerikSelectBase<object, TValue>.ReadOnlyTelerikSelectBase<object, TValue>.InputModeTelerikSelectBase<object, TValue>.ScrollModeTelerikSelectBase<object, TValue>.ItemHeightTelerikSelectBase<object, TValue>.PageSizeTelerikSelectBase<object, TValue>.EnabledTelerikSelectBase<object, TValue>.ValueExpressionTelerikSelectBase<object, TValue>.ValueChangedTelerikSelectBase<object, TValue>.ValueTelerikSelectBase<object, TValue>.TabIndexTelerikSelectBase<object, TValue>.AdaptiveModeTelerikSelectBase<object, TValue>.OnChangeTelerikSelectBase<object, TValue>.OnBlurTelerikSelectBase<object, TValue>.FillModeTelerikSelectBase<object, TValue>.RoundedTelerikSelectBase<object, TValue>.SizeTelerikSelectBase<object, TValue>.ProcessingDataDataBoundComponent<object>.SetParametersAsync(ParameterView)DataBoundComponent<object>.Rebind()DataBoundComponent<object>.DataBaseComponent.ShouldRender()BaseComponent.OnInitializedAsync()BaseComponent.InitLocalizer()BaseComponent.ThrowIfParameterIsNull(object, string)BaseComponent.HaveOptionsChanged(IDictionary<string, object>, IDictionary<string, object>)BaseComponent.GetClassString(params string[])BaseComponent.InvokeAsync<T>(string, params object[])BaseComponent.InvokeAsync<T>(string, CancellationToken, params object[])BaseComponent.InvokeVoidAsync(string, params object[])BaseComponent.InvokeVoidAsyncWithoutAwait(string, params object[])BaseComponent.InvokeComponentMethodAsync<T>(string, params object[])BaseComponent.InvokeComponentMethodAsync<T>(string, CancellationToken, params object[])BaseComponent.InvokeVoidComponentMethodAsync(string, params object[])BaseComponent.InvokeComponentVoidMethodAsync(string, object)BaseComponent.InvokeDisposeAsync()BaseComponent.StateHasChanged()BaseComponent.RootComponentBaseComponent.ClassComponentBase.OnInitialized()ComponentBase.OnParametersSet()ComponentBase.OnAfterRender(bool)ComponentBase.InvokeAsync(Action)ComponentBase.InvokeAsync(Func<Task>)ComponentBase.DispatchExceptionAsync(Exception)...

Properties

Creates a default placeholder item displayed when no value is selected, allowing users to understand the dropdown's purpose. The default text appears in the input area when Value is null or default. Example: "Select a category", "Choose location", "-- None --".

C#
[Parameter]
public string? DefaultText { get; set; }

The DropDownTree items have features that map to properties in the model. The container enables you to create DropDownTreeBinding tags and configure the mappings. Children: DropDownTreeBinding tags.

C#
[Parameter]
public RenderFragment? DropDownTreeBindings { get; set; }

Configures advanced dropdown popup behavior including animations, positioning, dimensions, and collision detection. Children: DropDownTreePopupSettings component with properties for animation duration, popup dimensions, and positioning options.

C#
[Parameter]
public RenderFragment? DropDownTreeSettings { get; set; }

Enables WebMCP tool registration for this DropDownTree. When true, DropDownTree operations are exposed as tools discoverable by AI models through the browser. Default value is false.

C#
[Parameter]
public bool EnableWebMcpTools { get; set; }

Defines the collection of currently expanded items in the DropDownTree hierarchy. Use to pre-expand specific branches when the dropdown opens or to track user expansion interactions. Supports two-way binding with ExpandedItemsChanged for state persistence.

C#
[Parameter]
public IEnumerable<object> ExpandedItems { get; set; }

Fires when the ExpandedItems collection changes due to user interaction with expand/collapse icons. Use for state persistence, synchronizing with parent components, or triggering load-on-demand operations.

C#
[Parameter]
public EventCallback<IEnumerable<object>> ExpandedItemsChanged { get; set; }

Controls the delay in milliseconds between when a user stops typing and when the filter operation executes. Prevents excessive filtering during rapid typing, improving performance with large hierarchical datasets. Recommended range: 100-300ms for optimal balance of responsiveness and performance.

C#
[Parameter]
public int FilterDebounceDelay { get; set; }

Controls how the dropdown filters tree items when Filterable is enabled. StartsWith filters items that begin with the user input - fastest and most intuitive. Contains searches anywhere within the text - best for finding items in large hierarchies.

C#
[Parameter]
public StringFilterOperator FilterOperator { get; set; }

Sets the placeholder text displayed in the filter input field when Filterable is enabled. Provides users with guidance on how to search through the tree hierarchy. Example: "Type to search...", "Filter items", "Search categories".

C#
[Parameter]
public string? FilterPlaceholder { get; set; }

Fires when the dropdown popup is about to close, regardless of whether a selection was made. Use for cleanup operations, saving draft selections, or analytics tracking. Set IsCancelled to true to prevent the dropdown from closing.

C#
[Parameter]
public EventCallback<DropDownTreeCloseEventArgs> OnClose { get; set; }

Fires when the user expands or collapses a tree node in the dropdown. Essential for implementing load-on-demand scenarios where child items are fetched when a node is expanded. The event provides the data item being expanded and its new expanded state.

C#
[Parameter]
public EventCallback<DropDownTreeExpandEventArgs> OnExpand { get; set; }

Fires when the dropdown component gains focus, either through user interaction or programmatically.

C#
[Parameter]
public EventCallback OnFocus { get; set; }

Fires when the user clicks, taps, or presses Enter on a tree item in the dropdown. Use for custom selection logic, navigation, or triggering additional actions beyond the default selection behavior.

C#
[Parameter]
public EventCallback<DropDownTreeItemClickEventArgs> OnItemClick { get; set; }

Executes custom logic when each tree item renders, allowing dynamic CSS class assignment based on item data. Use to highlight specific items, indicate status, apply conditional styling, or add accessibility attributes.

C#
[Parameter]
public Action<DropDownTreeItemRenderEventArgs>? OnItemRender { get; set; }

Fires when the dropdown popup is about to open, allowing you to cancel the operation or perform setup actions. Use for lazy loading tree data, logging user interactions, or preparing dynamic content. Set IsCancelled to true in the event handler to prevent the dropdown from opening.

C#
[Parameter]
public EventCallback<DropDownTreeOpenEventArgs> OnOpen { get; set; }

Fires when the dropdown needs to load data, enabling custom data operations like server-side filtering and load-on-demand. Once implemented, you must handle all data operations yourself - the component will no longer perform automatic filtering. Essential for large hierarchical datasets or integration with external APIs and databases.

C#
[Parameter]
public EventCallback<DropDownTreeReadEventArgs> OnRead { get; set; }
C#
protected TreeViewItem? SelectedDataItem { get; set; }

Controls whether a clear button (X icon) appears inside the input field for quick date removal. Clear button appears only when the component has a value - empty fields don't show the clear button.

C#
[Parameter]
public bool ShowClearButton { get; set; }

Customizes how the selected value appears in the dropdown input field using a custom template. Provides access to the selected data item for displaying formatted content, icons, or complex layouts. Example: Show category icon and name, display location with region info, or format hierarchical path. Children: allows arbitrary content including HTML elements, components, and data binding expressions.

C#
[Parameter]
public RenderFragment<object>? ValueTemplate { get; set; }

Methods

C#
public void AddBinding(ITreeBinding binding)
Parameters:bindingITreeBinding
C#
protected override void BuildRenderTree(RenderTreeBuilder __builder)
Parameters:__builderRenderTreeBuilder

Overrides: ComponentBase.BuildRenderTree(RenderTreeBuilder)

C#
public override void Dispose()

Overrides: TelerikSelectBase<object, TValue>.Dispose()

GetBinding(int?)

ITreeBinding

C#
public ITreeBinding? GetBinding(int? level)
Parameters:levelint?Returns:

ITreeBinding

C#
protected override Task OnAfterRenderAsync(bool firstRender)
Parameters:firstRenderboolReturns:

Task

Overrides: BaseComponent.OnAfterRenderAsync(bool)

C#
protected override Task OnParametersSetAsync()
Returns:

Task

Overrides: TelerikSelectBase<object, TValue>.OnParametersSetAsync()

C#
public void RemoveBinding(ITreeBinding binding)
Parameters:bindingITreeBinding