Power Apps中Gallery控件的条件格式设置问题求助
解决Power Apps Gallery文本输入框条件填充色问题
核心问题分析
之前尝试的公式失效,本质是文本与数值类型不匹配:标签Lbl_Upper、Lbl_Lower的内容和输入框默认值是文本格式,直接做大小比较会触发字符串排序逻辑(比如"100"会被判定为小于"90"),而非数值逻辑。
正确的填充色公式
场景1:基于Collection原始数据(不实时响应输入框编辑)
设置Rec_Val1的Fill属性为:
If( Value(ThisItem.Value1) >= Value(Lbl_Lower.Text) && Value(ThisItem.Value1) <= Value(Lbl_Upper.Text), RGBA(0, 255, 0, 1), // 绿色 RGBA(255, 0, 0, 1) // 红色 )
Rec_Val2的Fill属性只需把ThisItem.Value1替换为ThisItem.Value2即可。
场景2:实时响应输入框编辑内容
如果希望用户修改Rec_Val1的内容后,填充色立即更新,公式改为:
If( Value(Rec_Val1.Text) >= Value(Lbl_Lower.Text) && Value(Rec_Val1.Text) <= Value(Lbl_Upper.Text), RGBA(0, 255, 0, 1), RGBA(255, 0, 0, 1) )
优化方案(处理无效数值)
如果Lbl_Lower、Lbl_Upper或Collection中的值可能不是有效数字,可添加数值有效性判断,避免错误:
If( IsNumeric(Lbl_Lower.Text) && IsNumeric(Lbl_Upper.Text) && IsNumeric(ThisItem.Value1), If( Value(ThisItem.Value1) >= Value(Lbl_Lower.Text) && Value(ThisItem.Value1) <= Value(Lbl_Upper.Text), RGBA(0,255,0,1), RGBA(255,0,0,1) ), RGBA(255,255,255,1) // 无效数值时显示白色 )
关键注意点
- 无需引用输入框的
.Default或.Text来获取Collection数据,直接用ThisItem.Value1即可(如果Collection中存储的是文本型数字,仍需用Value()转换) - 必须用
Value()函数将文本格式的数字转换为数值类型,才能正确执行数值大小比较
内容的提问来源于stack exchange,提问作者user3599946
相关产品推荐
相关产品推荐

