devexpress/agent-skills/devexpress-blazor-combobox
Claude Code and agent skill by devexpress/agent-skills
- community
Checking that the SKILL.md file is still in the repository.
Build and configure the DevExpress Blazor ComboBox (DxComboBox) — a drop-down/select editor for Blazor Server, WebAssembly, and Hybrid apps. Use for data binding (sync/async), searching/filtering, grouping, virtualization, multi-column item lists, templates (item/edit box), validation in EditForm, Clear button and custom buttons, and cascading combo boxes. Also use for DxComboBox, combo box, dropdown, select, item picker, AllowUserInput, SearchMode, and editor feature comparisons or migration s…
Install
npx vskill@latest install devexpress/agent-skills/devexpress-blazor-comboboxSKILL.md
DevExpress Blazor ComboBox
DxComboBox<TData, TValue> is a text editor with a searchable drop-down list. It binds to strongly-typed collections or custom objects, supports multi-column layouts, grouping, virtual scrolling, cascading dropdowns, and fully customizable item and edit-box templates.
When to Use This Skill
- Add a single-selection dropdown or selector to a Blazor form
- Bind to any
IEnumerable<T>,IQueryable<T>, or async collection - Enable live search/filter as the user types
- Display grouped items with a group header
- Create cascading (dependent) dropdowns
- Show multiple columns in the drop-down list
- Customise item rendering via
ItemDisplayTemplateorEditBoxDisplayTemplate - Add a Clear button, custom command buttons, or placeholder text
- Validate ComboBox selection inside a standard
<EditForm> - Use virtual scrolling for large lists
Prerequisites & Installation
NuGet Package
| Package | Purpose | |
|---|---|---|
DevExpress.Blazor | ComboBox + all standard Blazor UI components |
Setup (existing project)
- Register DevExpress services in
Program.cs:
``csharp builder.Services.AddDevExpressBlazor(); ` > **v26.1 note**: DevExpress.Blazor no longer includes options.BootstrapVersion or DevExpress.Blazor.BootstrapVersion`. Do not generate either API.
- Apply a theme and add client scripts in
App.razor:
``razor @DxResourceManager.RegisterTheme(Themes.Fluent) @DxResourceManager.RegisterScripts() ``
- Add the namespace to
_Imports.razor:
``razor @using DevExpress.Blazor ``
Before You Start — Ask the Developer
If the host agent has a structured question-asking tool available, use it to ask these questions one at a time with clear options — for example, Claude Code's AskUserQuestion tool or GitHub Copilot's askQuestions tool. If no such tool is available, ask the questions directly in the chat response before generating code.
Ask these questions before generating code:
- Render mode: Are you using
InteractiveServer,InteractiveWebAssembly, orInteractiveAuto? (DxComboBoxdoes not function in Static SSR.) - Is this a new project or an existing one? New projects can use the DevExpress Template Kit; existing ones need manual setup above.
- Data type: Are you binding to a simple
IEnumerable<string>(or primitive), a list of custom objects, anIQueryable<T>, or loading data asynchronously? - Value type: Is the bound
Valuethe same type as the data items (TData == TValue) or a different key type (e.g.,intID from aList<Product>)? - Custom objects: If binding to custom objects, have you overridden
EqualsandGetHashCodein your model? (Required for correct item matching.) - Features needed: Do you need search/filter, grouping, multiple columns, cascading, templates, or validation?
Component Overview
Key generic parameters:
TData— the type of items in theDatacollectionTValue— the type of the boundValue; equalsTDatawhen binding to the whole object
Documentation & Navigation Guide
| Topic | Reference File | When to load | |
|---|---|---|---|
| Getting Started (setup, first ComboBox) | references/getting-started.md | New project setup or first-time use | |
| Data Binding (simple, custom objects, async, virtual scroll) | references/data-binding.md | Binding to data or setting Value | |
| Search, Filter, Grouping, Disabled Items | references/data-shaping.md | Configuring search or grouping | |
| Multiple Columns | references/multiple-columns.md | Multi-column drop-down layout | |
| Appearance Customization & Templates | references/appearance-and-templates.md | Styling, size modes, templates | |
| Buttons & Cascading | references/buttons-and-cascading.md | Clear button, custom buttons, cascading ComboBoxes | |
| Validation | references/validation.md | <EditForm> integration |
Key Properties & API Surface
DxComboBox<TData, TValue> — most-used members
| Property / Event | Type | Description | |
|---|---|---|---|
Data | IEnumerable<TData> | Binds the drop-down list to a data source | |
DataAsync | Func<CancellationToken, Task<IEnumerable<TData>>> | Asynchronous data loading | |
Value / @bind-Value | TValue | Selected value; use @bind-Value for two-way binding | |
ValueChanged | EventCallback<TValue> | Fired when the value changes | |
TextFieldName | string | Field name to display as item text (for custom object collections) | |
KeyFieldName | string | Field used as the item key (decouples TData from TValue) | |
KeyFieldNames | string[] | Multiple key fields for composite keys | |
GroupFieldName | string | Field used to group items in the list | |
DisabledFieldName | string | Boolean field that marks items as disabled | |
NullText | string | Placeholder displayed when value is null | |
ClearButtonDisplayMode | DataEditorClearButtonDisplayMode | Controls Clear button visibility (Auto, Always, Never) | |
ShowDropDownButton | bool | Shows/hides the built-in drop-down toggle button | |
AllowUserInput | bool | Allows typing a custom value not in the list | |
SearchMode | ListSearchMode | AutoSearch (default), Disabled | |
SearchFilterCondition | ListSearchFilterCondition | Contains, StartsWith, Equals | |
SearchTextParseMode | ListSearchTextParseMode | How multiple words are combined | |
SearchDelay | int | Debounce delay (ms) before search fires | |
EditFormat | string | Format string for the edit box value in multi-column mode | |
DropDownDirection | DropDownDirection | Down (default), Up | |
DropDownWidthMode | DropDownWidthMode | ContentOrEditorWidth (default), ContentWidth, EditorWidth | |
SizeMode | SizeMode | Small, Medium (default), Large | |
DataLoadMode | ListDataLoadMode | Auto (default), OnDemand | |
ListRenderMode | ListRenderMode | Default, Virtual (virtual scrolling) | |
InputCssClass | string | CSS class applied to the input element | |
InputId | string | HTML id of the input element (for label association) | |
ItemDisplayTemplate | RenderFragment<ComboBoxItemDisplayTemplateContext<TData>> | Customises drop-down item rendering | |
EditBoxDisplayTemplate | RenderFragment<ComboBoxEditBoxDisplayTemplateContext<TData, TValue>> | Customises selected-value rendering in the edit box | |
ColumnCellDisplayTemplate | RenderFragment<ComboBoxColumnCellDisplayTemplateContext<TData>> | Customises all column cells in multi-column mode | |
ValidateBy | ComboBoxValidateBy | Text or Value — which property is validated |
DxListEditorColumn — for multi-column drop-down
| Property | Type | Description | |
|---|---|---|---|
FieldName | string | Data source field for this column | |
Caption | string | Column header text | |
Width | string | Column width (CSS value, e.g. "50px") | |
SearchEnabled | bool | Include this column in search operations | |
CellDisplayTemplate | RenderFragment<ListBoxColumnCellDisplayTemplateContext<TData>> | Per-column cell template |
Enums
| Enum | Values | |
|---|---|---|
DataEditorClearButtonDisplayMode | Auto, Always, Never | |
ListSearchMode | AutoSearch, Disabled | |
ListSearchFilterCondition | Contains, StartsWith, Equals | |
ListDataLoadMode | Auto, OnDemand | |
ListRenderMode | Default, Virtual | |
DropDownDirection | Down, Up | |
DropDownWidthMode | ContentOrEditorWidth, ContentWidth, EditorWidth | |
SizeMode | Small, Medium, Large |
Common Patterns
Pattern 1 — Bind to a Custom Object Collection
When TData is a custom class, set TextFieldName, and override Equals/GetHashCode in the model (or use KeyFieldName to avoid this):
Model requirement when TData == TValue:
Pattern 2 — Search & Filter with Group Data
Pattern 3 — Multi-Column Drop-Down
Troubleshooting
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/dx-blazor/skills/devexpress-blazor-combobox/SKILL.md
Popularity
- Repository stars
- 52
- Repository forks
- 8
- 7-day trend score
- 20
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/devexpress/agent-skills/devexpress-blazor-combobox)