动态更改 canvas 上列表框的绑定实体

Dynamically changing the bound entity of a list box on a canvas

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

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
    )
)

问题是当我 select 'SomeValueA' 列表框正确地填充了来自 EntityA.FieldName 的值但是当我从 select 'SomeValueB'单选按钮列表框空白与空记录。列表框中似乎有些项目我可以滚动浏览,但 select 但看不到。

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

我试过不重置列表框,我试过使用由实体记录组成的集合。

有没有人遇到过这个可能有解决方案的人。我打算尝试将两个列表框放在另一个列表框的顶部,然后 hide/show 或将活动列表放在最前面,但这也行不通。

谢谢!

(从其他来源收到此 post,我想我也可以 post 返回这里)

让这个工作,但它有点挑剔。问题似乎是给 List 一个值对 table,而不仅仅是一个值列表。 首先我从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" 之间切换(来自上面的集合),但这确实允许我在两个单独的选项集字段之间切换一个列表。

Patching/writing 这个背又是一个障碍。