You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不跳转新页面时,通过选中Gallery项更新其Items属性?

解决Power Apps Gallery不跳转页面异步更新Items的问题

问题根源

你当前的表达式直接依赖Gallery.Selected控制Items切换,这会触发循环依赖:当Gallery的Items更新时,原选中项会被清空,Gallery.Selected变为空值,导致逻辑无法正常执行。

可行解决方案

通过变量存储当前选中的分类状态,绕开对Gallery自身Selected属性的直接依赖,具体步骤如下:

1. 初始化状态变量

在屏幕的OnVisible事件中初始化变量,保存初始分类列表:

Set(varCurrentItems, [Category_Name:"C1", Category_Name:"C2", Category_Name:"C3"]);
Set(varSelectedCat, Blank())

2. 绑定Gallery的Items属性

把Gallery的Items属性设置为刚才的变量:

varCurrentItems

3. 配置Gallery项的点击逻辑

在Gallery中每个项的OnSelect属性里添加切换逻辑:

If(
    ThisItem.Category_Name <> "C1",
    Set(varCurrentItems, [Category_Name:"sub1_C1", Category_Name:"sub2_C1"]),
    Set(varCurrentItems, [Category_Name:"C1", Category_Name:"C2", Category_Name:"C3"])
);
Set(varSelectedCat, ThisItem.Category_Name)

4. (可选)保持选中高亮

如果需要让选中的项保持高亮,可在Gallery项的Fill属性中设置:

If(ThisItem.Category_Name = varSelectedCat, RGBA(220,220,220,1), White)

扩展说明

如果你的子分类是从数据源异步加载的,只需把Set(varCurrentItems, ...)里的静态列表替换为数据源查询即可,比如:

Set(varCurrentItems, Filter(SubCategoriesTable, ParentCategory = ThisItem.Category_Name))

内容的提问来源于stack exchange,提问作者akg1421

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:58:18