Overview

The ComboBox is an editor that allows users to select an item from a drop-down list. Users can click an item in the drop-down list or use the ARROW UP, ARROW DOWN, and ENTER keys to navigate between items and select them. When a user presses and holds an arrow key, the editor's window continuously navigates between items.

The main ComboBox API members are listed below.

  • Data – Specifies the data source that populates the editor’s list items.
  • TextFieldName – Specifies the data source’s field that supplies text for items.
  • Text – Specifies the editor’s text.
  • TextChanged - Fires when the editor text was changed.
  • Value – Specifies the drop-down list’s selected value.
  • ValueChanged – Fires when the selected value was changed.

The ComboBox component supports different size modes. To specify the component's size in code, use the SizeMode property. To apply different size modes, use the drop-down list in the demo card's header.

This demo illustrates how to bind the ComboBox to a list of complex business objects.

Virtual Scrolling

Use the ListRenderMode property to specify how the ComboBox loads the item list.

  • Entire - The ComboBox loads the entire item list. Use this option for small item lists where scrolling should work instantly.
  • Virtual - The ComboBox loads visible items only. Use this option to improve performance when the list contains too many items to load simultaneously.

In this demo, the ListRenderMode property is set to ListRenderMode.Virtual.

Multiple Columns

The ComboBox can display data across multiple columns. To create columns, use DxListEditorColumn objects that include the following options for column customization:

  • Caption - Specifies the column caption.
  • FieldName - Specifies the data source field that populates column items.
  • Visible - Specifies the column visibility.
  • VisibleIndex - Specifies the column display order.
  • Width - Specifies the column width.

To format an editor value, use the EditFormat property. This property allows you to format values displayed in both ordinary and multi-column ComboBoxes. The {1} {2} format specifies that the editor value includes values of the following columns: Name (VisibleIndex = 1) and Surname (VisibleIndex = 2).

Allow Input

The AllowUserInput property specifies whether users are allowed to input values into an editor's edit box. The following property values are available:

  • true - A user can either select an item from the drop-down list or enter new values into the edit box (without the need to invoke the drop-down list).
  • false - A user can only select an item from the drop-down list.

In this demo, the AllowUserInput property is set to true.

Incremental Filtering

Use the FilteringMode property to specify whether and how the ComboBox filters list items when users type in the edit box.

  • Contains - The ComboBox filters list items that contain the search string and highlights matches.
  • StartsWith - The ComboBox filters list items that begin with the search string and highlights matches.
  • None - The ComboBox does not filter list items.

In this demo, the filter mode is set to Contains.

Drop-Down List Width

Use the DropDownWidthMode property to specify the width of a drop-down list.

  • ContentOrEditorWidth (Default) - The list's width is equal to the width of the longest list item or the editor's width (whichever is larger).
  • ContentWidth - The list's width is equal to the width of the longest list item.
  • EditorWidth - The list's width is equal to the editor's width. List items are cut if they do not fit.

In this demo, ContentOrEditorWidth mode is used for both ComboBox components. To change the width of their drop-down lists, use the Drop Down Width Mode option below.

Drop Down Width Mode:

Clear Button and Placeholder

This demo illustrates how to use the NullText property to display the placeholder text in the ComboBox when its value is null.

Set the ClearButtonDisplayMode property to Auto to display the Clear button when the ComboBox has a non-null value. Users can click this button to clear the editor's value (set it to null).

Item Values

The ComboBox component provides access to item values. The value is assigned to the editor's edit value when a user selects an item from the drop-down list. To enable this access, set the ValueFieldName property to the name of the data source field that ships with values for the ComboBox items.

If the ValueFieldName property is not specified, the ComboBox component searches for a Value field in the data source and uses this field as a value field. Otherwise, values are not assigned to editor items.

To access a selected item’s value, use the Value property. To track selection changes, use the ValueChanged event or two-way synchronization as demonstrated in this module.

Cascading Lists

This demo shows how to populate the ComboBox with items based on the user selection in another ComboBox.

Read-Only and Disabled Modes

In this demo, the ComboBox displays values but does not allow users to change them. To implement this behavior, you can use any of the following modes:

  • Read-only mode. In this mode, you can use the keyboard to focus and navigate the component. Set the ReadOnly property to true to activate this mode.
  • Disabled mode. In this mode, the component cannot be focused or navigated. Set the Enabled property to false to activate this mode.