这应该很容易,但我无法让它工作。我使用数组在弹出窗口中显示不同的数据源。由于我不能使用变量作为数据源,所以我必须创建 8 个单独的组,每个组都有相应的数据源。我的初始数组是
Set(toggle_popup, [0,0,0,0,0,0,0,0,0])
然后当我单击时,我希望打开相应的窗口。因此,如果我希望打开第二个框(containerNum = 2),则在我的链接的 onSelect 事件中,我有
Patch(
toggle_popup,
Index(toggle_popup, FieldLabel.ContainerNum),
{
Value: 1
}
);
我在 Patch 函数中收到无效数据源错误。
我想要的是这个:
toggle_popup = [0,0,1,0,0,0,0,0,0]
组件 2 的 Visible 属性是
If (Index(toggle_popup,2).Value = 1, true)
在常规代码中,我想要做的就是这样做:
toggle_popup[FieldLabel.ContainerNum] = 1
但这似乎不起作用。
在当今的 Power Apps 中,如果您使用 Set 函数将表设置为变量,则该变量被视为不可变的 - 这就是您在 Patch 函数中看到错误的原因,提示数据源无效。这种情况在不久的将来可能会发生变化,但现在您可以将 toggle_popup 变量定义为集合:
或者
这解决了第一个问题,但不是整个场景。更新本地集合时,Patch 函数将查找与其第二个参数匹配的第一个记录。在您的例子中,第一个记录将匹配
Index(toggle_popup, 2)
- 所有其他记录也将匹配,因此它将按照您的意愿更新第一个记录而不是第二个记录。您可以通过使每条记录唯一来解决这个问题,使用如下方法:
现在集合中的每个记录都有不同的值,因此如果执行此表达式:
然后集合的第二个元素将被更新。