首页 > 解决方案 > 动态更改画布上列表框的绑定实体

问题描述

我想知道是否有人遇到过这个问题。我在画布应用程序上有两个单选按钮,我试图控制列表框中显示的值。

RadioButtons.Items: ["SomeValueA","SomeValueB"]

只要单选按钮的值发生更改,列表框控件就应该被重置。

UpdateContext({resetList: !resetList});
UpdateContext({resetList: !resetList});
Reset(lbListbox);

lbListbox.Reset: resetList

对于列表框本身,我有以下项目:

Switch(
    RadioButtons.Selected.Value,
    "SomeValueA",
    Sort(
        EntityA.FieldName,
        Descending
    ),
    "SomeValueB",
    Sort(
        EntityB.'Some other field name',
        Descending
    )
)

问题是当我选择“SomeValueA”时,列表框会正确填充来自 EntityA.FieldName 的值,但是当我从单选按钮中选择“SomeValueB”时,列表框会以空记录显示为空白。列表框中似乎有一些项目可以滚动并选择但看不到。

如果我在屏幕上放置两个列表框并将它们的 Items 事件设置为特定实体,则值会正确显示在两个列表框中,因此我知道实体命名/字段是正确的。

我已经尝试过没有重置列表框,我已经尝试过使用由实体记录组成的集合。

有没有人遇到过这个可能有解决方案的人。我打算尝试将两个列表框放在一起,然后隐藏/显示或将活动列表放在前面,但这也不起作用。

谢谢!

标签: powerapps-canvas

解决方案


(从另一个来源收到这篇文章,我想我也不妨在这里发帖)

让它工作,但它有点挑剔。问题似乎是给 List 一个值配对表,而不仅仅是一个值列表。首先,我从 CDS 中收集了 Option Sets,并添加了一列来指示源名称,以供参考。这可以很容易地组合成一个集合,然后稍后过滤,但我想的很简单。

ClearCollect(colOptionSet1,AddColumns(Choices('Ownership (Accounts)'),"appSource","Ownership")); 
ClearCollect(colOptionSet2,AddColumns(Choices('Preferred Method of Contact (Accounts)'),"appSource","Preferred Method")); 

接下来添加了一个与您相同的单选按钮。然后添加了一个 List 控件,其 Items 等于

If( Radio1.Selected.Value = "SomeValueA", colOptionSet1, Radio1.Selected.Value = "SomeValueB", colOptionSet2 ) 

您可能需要使用右侧的属性窗格在值和“appSource”(来自上面的集合)之间切换,但这确实允许我在单个列表中的两个单独的选项集字段之间切换。

修补/写回这将是另一个障碍。


推荐阅读