Power Apps:Gallery内下拉框DefaultSelectedItems设置Dataverse选项列报错
问题场景
我有一个Dataverse表“Leave Requests”,其中包含单选Choice类型列“Approval Status”(选项为Approved、Pending、Rejected)。在Gallery中插入下拉框用于编辑该字段时,将ThisItem.'Approval Status'设置到下拉框的DefaultSelectedItems属性会报错:"This formula uses scope, which is not presently supported for evaluation",但相同的公式放在Placeholder属性却能正常显示当前记录的状态值。
问题原因
Dataverse的Choice类型在Power Apps中以记录形式存在(包含Value、Label等字段),下拉框的DefaultSelectedItems需要与Items属性的结构完全匹配。直接使用ThisItem.'Approval Status'会触发作用域解析问题——设计时预览无法正确识别Gallery上下文里的完整Choice记录结构;而Placeholder是文本属性,Power Apps会自动提取Choice记录的Value值展示,因此不会报错。
修复步骤
确保下拉框的Items属性配置正确
下拉框的数据源必须绑定到该Choice列的选项列表,公式为:Choices('Leave Requests'.'Approval Status')修改DefaultSelectedItems属性公式
替换原公式为以下两种方式之一:- 方式1:匹配Value字段(简洁版)
{ Value: ThisItem.'Approval Status'.Value } - 方式2:匹配完整记录(更严谨,避免Value重复场景)
LookUp(Choices('Leave Requests'.'Approval Status'), Value = ThisItem.'Approval Status'.Value)
- 方式1:匹配Value字段(简洁版)
验证单选设置
如果使用的是ComboBox(组合框),需确保AllowMultipleSelections属性设置为false,因为该Choice列是单选类型。
保存验证
配置完成后,可通过Patch函数测试保存修改:
在Gallery外添加提交按钮,设置OnSelect属性为:
Patch('Leave Requests', ThisItem, {'Approval Status': Dropdown1.Selected})
测试修改下拉框选项后点击按钮,确认Dataverse表中的记录状态是否更新成功。
内容的提问来源于stack exchange,提问作者Mir Arshan Ali

