When I build an HR Leave Request app for a small company, the first complaint is always the same: “Why are employees still typing department, leave type, and manager name manually?” Misspellings, inconsistent values, and messy reports soon follow. The fix is simple but powerful — move those fields to Power Apps Dropdown controls bound to a SharePoint list.
I’ve implemented this pattern for real teams managing leave requests, approvals, and employee data in SharePoint, and it consistently improves data quality and user experience. In this guide, I’ll walk you through how to connect a dropdown to a SharePoint list, handle common scenarios like default values and filtering, and avoid the pitfalls that catch most beginners.
Why Use a Dropdown with SharePoint?
When your Canvas app uses SharePoint as a data source, dropdowns become the easiest way to enforce clean, consistent values. Instead of free text, users select from a controlled list:
- Better data quality. Reports and filters work because “HR” is always “HR”, not “Hr”, “Human Resources”, or “H.R.”
- Fewer user mistakes. Users pick from predefined options instead of guessing what to type.
- Centralized maintenance. You update values in one SharePoint list, and every app using that list gets the new options automatically.
If you’re new to Power Apps create and SharePoint working together, it’s worth first understanding how SharePoint lists behave as a data source in Power Apps. You can check out how to design a solid SharePoint list structure in this guide on SharePoint list examples.
In this tutorial, we’ll stay with our example HR Leave Request app, and build dropdowns for:
- Leave type (Annual, Sick, Unpaid)
- Department (HR, Finance, IT)
- Manager (lookup to another list or Office 365 users)
Power Apps Dropdown Control With SharePoint
Before you even touch Power Apps, your SharePoint list design decides how easy or painful your dropdown experience will be.
Step 1: Create a SharePoint List for Dropdown Data
For a simple LeaveType dropdown, I normally create a separate SharePoint list called LeaveTypes:
- Title (single line of text) – stores the name of the leave type.
- IsActive (Yes/No) – lets you hide old options without deleting them.
- Optional: SortOrder (Number) – controls the order in the dropdown.

You can quickly spin up such a list using the guidance in this article on SharePoint list setup.
Why a separate list? Because:
- It keeps your main
LeaveRequestslist clean. - It lets you reuse the same dropdown values in multiple apps or lists.
- It supports admin-only editing while users only select values in apps.Pro Tip: I’ve found that using a dedicated “lookup” list for dropdown values makes future changes safer. You can add, retire, or rename entries without touching your core transaction data.
Step 2: Configure Column Types Correctly
When you’re planning to bind a dropdown:
- Use single line of text for simple labels (Leave type names).
- Use choice columns in your main list if you want validation at the SharePoint level too.
- Avoid heavily nested lookup columns unless you know how to handle them from Power Apps (they add complexity and delegation limits).
If you do want to use choice fields in Power Apps, this guide on setting SharePoint choice values in Power Apps is a great next step after you master basic dropdowns.
Connect Power Apps to SharePoint and Add the Dropdown
Now that the SharePoint list is ready, let’s wire it up in a Canvas app.
Step 3: Add SharePoint as a Data Source
Open your Canvas app in Power Apps Studio and:
- Go to Data (left panel).
- Click Add data.
- Search for SharePoint and connect to your site.
- Select the
LeaveTypeslist (and your mainLeaveRequestslist if you haven’t already).

If you’re starting completely from scratch, you can follow this more detailed walkthrough on creating a Power Apps Canvas app.
Step 4: Insert a Dropdown Control
On your main form screen:
- Go to Insert > Input > Dropdown.
- Place the Dropdown control on your screen.
- Rename the control to something meaningful, for example:
ddlLeaveType.

Renaming controls early saves you a lot of debugging time later, especially when your app starts using formulas like Patch and complex conditionals. Understanding DisplayMode and other key properties is helpful; this guide on Power Apps display mode explains how to control when your dropdown is enabled or disabled.
Bind Power Apps Dropdown to SharePoint List Items
With the Dropdown inserted and SharePoint connected, you now bind the items and choose what to display and store.
Step 5: Set the Items Property
Select ddlLeaveType, then in the right-hand pane (or formula bar) set the Items property:
'Leave Types'

This tells the dropdown to take its options from the LeaveTypes SharePoint list.
To show a specific field (Title), set the ItemDisplayText property:
ThisItem.Title

Now the dropdown will display each list item’s Title, like “Annual Leave”, “Sick Leave”, “Unpaid Leave”.

If the list is large and you care about performance, consider using SortByColumns:
Items = SortByColumns(
Filter('Leave Types', IsActive = true),
"SortOrder",
Ascending
)
This:
- Filters only active leave types.
- Sorts them based on the SortOrder field.
- Prevents users from seeing old or inactive options.Pro Tip: In my experience, filtering dropdown values upfront (for status or date) makes apps feel faster and more relevant. Long dropdown lists frustrate end users and increase selection errors.
Save the Selected Dropdown Value to SharePoint
Binding is only half the story. You also need to store the selected value into your main LeaveRequests list.
Step 6: Use the Dropdown in a Power Apps Form Control
The easiest way is to use an Edit form bound to LeaveRequests:
- Insert a Form control: Insert > Forms > Edit form.
- Set the form’s DataSource to
LeaveRequests. - Add the
LeaveTypedata card (choice or text column). - Remove the default text input inside that card, and insert your
ddlLeaveTypeinside the data card.
Set the Update property of the data card to:
Update = ddlLeaveType.Selected.Title
This tells the form to save the selected Title value to the LeaveType field when you submit.
Then, handle your Submit button:
OnSelect = SubmitForm(EditForm1)
Where EditForm1 is your form’s name. When users click the button, the selected dropdown value gets stored in the LeaveType column of your LeaveRequests list.
If you’re still getting familiar with forms, this article on creating a form in Power Apps is a great foundation.
Step 7: Using Patch Instead of Forms (Advanced)
Sometimes you don’t want a full form. You may be using a custom layout with labels, inputs, and buttons. In those cases, use the Patch function to write records directly:
Patch(
LeaveRequests,
Defaults(LeaveRequests),
{
Title: txtRequestTitle.Text,
LeaveType: ddlLeaveType.Selected.Title,
StartDate: dpStartDate.SelectedDate,
EndDate: dpEndDate.SelectedDate
}
)
Explanation:
LeaveRequests– your SharePoint list.Defaults(LeaveRequests)– tells Patch you are creating a new item.- The record
{...}includes all fields you want to set, including the dropdown value.
If you’re building more advanced CRUD apps (Create, Read, Update, Delete), the combined guidance in Power Apps CRUD operations will help you structure your app properly.
Handling Default Values and Editing Existing Requests
A basic dropdown is easy. The next pain point is handling defaults and editing existing records.
Step 8: Set a Default Dropdown Value
You can set the default selected item using the Default property:
LookUp(
'Leave Types',
Title = "Casual Leave"
)

This works if your dropdown is using the Titles directly. For more dynamic scenarios, you might want a default based on the current user or other conditions:
Default = If(
User().Email = "[email protected]",
"HR Admin Default",
"Annual Leave"
)
This condition uses User().Email to choose a default value based on who is logged in. To take this further, you can build personalized views or filters, as shown in this article on filtering Power Apps data by current user.
Step 9: Show Existing Values When Editing
When your form is in Edit mode (for existing items), the form automatically populates the data card with current values. If your dropdown is inside the data card and the Update property is set correctly, Power Apps handles the value mapping.
Make sure your Dropdown control’s Default property uses:
Default = ThisItem.LeaveType
ThisItem refers to the record currently loaded in the form. This ensures the correct leave type is selected when the record is opened.
If you see errors like “Expected record value” or the dropdown remains blank, this troubleshooting guide on expected record value errors in Power Apps can help you untangle mismatched data types.
Filter Dropdowns Based on Another Field (Cascading Dropdowns)
Real apps rarely have standalone dropdowns. Often, one dropdown depends on another — for example, Leave Type might depend on Employee Category or Department.
Step 10: Create a Cascading Dropdown Scenario
Suppose you have a second list Departments and you want the Manager dropdown to show only managers from the selected department.
Departmentslist with fields:- Title – Department name.
Managerslist with fields:- Title – Manager name.
- Department – Lookup or text referencing the department.
On your app:
- Add a Dropdown for department:
ddlDepartmentwithItems = DepartmentsandValue = "Title". - Add another Dropdown for manager:
ddlManagerwith:
Items = Filter(
Managers,
Department = ddlDepartment.Selected.Title
)
Value = "Title"
This is called a cascading dropdown, where the second dropdown filters its values based on the first. For a deeper, dedicated walkthrough, check out this article on Power Apps cascading dropdown control.
Pro Tip: I always test cascading dropdowns with a few “edge case” departments that have no managers. That’s where you’ll see Blank values or weird behavior if your formulas aren’t defensive enough.
Common Dropdown Issues with SharePoint (And How to Fix Them)
You’ll eventually run into dropdown values not showing up properly or blank screens when you change list columns.
Issue 1: Dropdown Values Not Showing
If your dropdown is empty, double-check:
- The Items property points to the correct SharePoint list.
- The Value property matches an actual column name (Title, not “title”).
- Your filter is not excluding all rows.
This article on Power Apps dropdown values not showing walks through specific causes and fixes, including permissions, column type mismatches, and delegation limitations.
Issue 2: Mismatched Data Types (Expected Record Value)
The “expected record value” error usually happens when:
- You bind a dropdown to a record but your formula expects a text value.
- You use
.Selectedvs.Selected.Titleincorrectly.
Referencing the entire record is fine in some contexts, but whenever SharePoint expects a text/choice value, you must send the correct field type. Again, this “expected record value” guide is a useful companion when debugging these issues.
Things to Keep in Mind
- Plan SharePoint list structure first. Poorly designed lists (mixed types, too many lookups) make dropdown bindings confusing and lead to delegation issues.
- Use clear control names. Naming controls like
ddlLeaveTypeandfrmLeaveRequestmakes your formulas readable and reduces mistakes when you refactor. - Avoid overly large lookup lists. Huge lists used for dropdowns can cause performance and delegation warnings, especially when you filter or sort heavily.
- Handle blank states gracefully. Always consider what happens when filters return no items; show a message or disable the submit button to avoid invalid submissions.
- Secure your data source. Remember that dropdown values come from SharePoint; ensure proper list permissions and SharePoint list permissions are configured so users only see what they should.
- Test with real user scenarios. Try your dropdown with test accounts, different roles, and realistic data volumes instead of just a few sample rows.
Frequently Asked Questions
How do I bind a Power Apps dropdown to a SharePoint list?
Set the dropdown’s Items property to your SharePoint list (for example, Items = LeaveTypes) and set the Value property to the column you want to display (usually "Title"). Then, in your form data card’s Update property, use ddlLeaveType.Selected.Title so the selected value is saved back to your main SharePoint list. This pattern works for simple text fields and SharePoint choice columns.
How do I save the dropdown selection into a SharePoint list item?
If you’re using an Edit form, put the dropdown inside the relevant data card and set the card’s Update property to the desired field, like ddlLeaveType.Selected.Title. When you call SubmitForm(EditForm1), Power Apps writes that value into the SharePoint list. If you prefer Patch, include the dropdown value in the record you send: LeaveType: ddlLeaveType.Selected.Title.
How can I create a cascading dropdown with SharePoint data?
Create separate SharePoint lists (for example, Departments and Managers) and use Filter in the second dropdown’s Items property. A typical formula looks like Items = Filter(Managers, Department = ddlDepartment.Selected.Title). This way, when users pick a department, the manager dropdown automatically updates to show only managers from that department.
Why are my Power Apps dropdown values not showing from SharePoint?
Most of the time, the root cause is a misconfigured Items or Value property, or permissions on the SharePoint list. Check that the user has at least read permission on the list and that the column name you’re using in Value matches exactly (case-sensitive). Also verify that your filter is not too strict and accidentally returning zero records; the troubleshooting guide for dropdown values not showing covers these scenarios in detail.
Can I set a default value in a Power Apps dropdown based on the current user?
Yes. You can use the User() function in the dropdown’s Default property, combined with an If statement or a lookup. For example: Default = If(User().Email = "[email protected]", "HR Admin Default", "Annual Leave"). For more complex personalization, you can also filter list items by current user, as shown in the guide on filtering data by the current user.
Should I use choice fields or lookup lists for dropdowns in Power Apps?
For basic scenarios, SharePoint choice fields are fine, and they enforce validation at the list level. For reusable, cross-app dropdowns or more complex business logic, dedicated lookup lists (like LeaveTypes) give you more flexibility. Your decision should depend on how many apps will use the same values and how often you expect the options to change.
You may also like:
- Creating a form in Power Apps – Build solid forms that integrate dropdowns, validation, and submit logic.
- Power Apps cascading dropdown tutorial – Deep dive into multi-level dependent dropdowns.
- Power Apps add an item to SharePoint list – Learn more ways to create records from your apps.
- Power Apps nested If examples – Improve your conditional logic and default value formulas.
- Power Apps container control – Organize dropdowns and forms in responsive layouts.
You’ve seen how to structure a SharePoint list, bind a Power Apps Dropdown control, handle default values, and troubleshoot common errors. If you follow these patterns, your apps will be easier to maintain, more reliable, and much friendlier for your users. I hope you found this article helpful.

Preeti Sahu is an expert in Power Apps and has over six years of experience working with SharePoint Online and the Power Platform. She is the co-author of Microsoft Power Platform: A Deep Dive book. As a Power Platform developer, she has worked on developing various tools using Power Apps and Power Automate. She also makes Microsoft 365 videos and shares them on YouTube.