Power Apps  

Power Apps ComboBox Explained: DefaultSelectedItems, SearchFields, Schema & Best Practices

Introduction

ComboBox in Microsoft Power Apps is powerful but often tricky to configure correctly. Many common issues - like default values not working or data not saving to Microsoft SharePoint - are caused by simple schema mismatches. This article explains how to handle defaults, search, and data binding properly to build reliable apps.

In this article, you’ll learn how to properly configure a ComboBox and avoid common mistakes that can silently break your app.

1. Items vs DefaultSelectedItems

The most important rule:

  • DefaultSelectedItems and Items must have the same schema (structure).

Correct Example:

Items = [
    {Title: "Choice1"},
    {Title: "Choice2"}
]
DefaultSelectedItems = [
    {Title: "Choice1"}
]

If you have SharePoint choice column then:

Items = Choices(Yourlistname.Component)

This returns records like:

{ Value: "Choice1" }

Then correct DefaultSelectedItems should be:

[{ Value: "Choice1" }]

Handling Default When Schemas Are Different (Visual Example)

Scenario

You have a master mapping table:

NameChoiceCode
AChoice1101
BChoice2102
CChoice3103

Your Setup

ComboBox (Choice Selector)

Items = MasterChoiceList

Schema of Items:

{
  Name: "A",
  Choice: "Choice1",
  Code: 101
}

Another Dropdown (Name Selector)

Dropdown1.Items = ["A","B","C"]

Now, we want to dynamically set the default selected items in the choice dropdown based on the selected Name.

Wrong Approach

DefaultSelectedItems = [{Choice: Dropdown1.Selected.Value}]

Why this fails:

  • Items expects full record (Name, Choice, Code)

  • But you are only passing {Choice: "Choice1"}
    Schema mismatch → may display / may NOT save

Correct Approach (Match Full Schema)

Filter(
    MasterChoiceList,
    Name = Dropdown1.Selected.Value
)

Returns full record:

{
  Name: "A",
  Choice: "Choice1",
  Code: 101
}
  • Matches Items schema

  • Displays correctly

  • Saves correctly

2. DisplayFields and SearchFields

In a ComboBox control , DisplayFields and SearchFields play a critical role in defining how data is presented and searched.

  • DisplayFields (What users see)

This property determines which column(s) from the data source are shown in the dropdown.

DisplayFields = ["Title"]

Users will see values from the Title column.

  • SearchFields (What users can search)

This property defines which column(s) are used when users type to search in the ComboBox. (Note: You need to turn on IsSearchable = true)

SearchFields = ["Title"]

Users can search based on the Title column.

Using Multiple Search Fields:

You can improve user experience by allowing search across multiple columns:

SearchFields = ["Title", "Code", "Description"]
  • Users can search using any of these fields

  • Makes filtering faster and more flexible

3. Selected vs SelectedItems

  • Single select: When SelectMultiple/AllowMultipleSearching = false

ComboBox1.Selected

Returns a string.

  • Multi Select: When SelectMultiple/AllowMultipleSearching = true

ComboBox1.SelectedItems

Returns table.

4. Delegation

If your data source is large, Use below:

Filter(List, StartsWith(Title, ComboBox1.SearchText))

Otherwise search breaks after 500 (in case of Dataverse)/2000(in case of SharePoint) records.

5. Reset Behaviour

Reset(ComboBox1)
  • Clears selection

  • Useful after form submit

In a ComboBox control, the onchange property is triggered whenever the user changes the selected value(s), removes an existing select values in case of multi-select.

This is useful when you want to reset another control whenever the value of this ComboBox changes.

Conclusion

In this article, we learned how to properly configure and use ComboBox in Power Apps, including default selection, search and display behavior, handling OnChange and reset, understanding delegation, and working with Selected vs SelectedItems.