AdaptiveCard C# 中的 Botframework 循环

Botframework Loop inside of AdaptiveCard C#

我想在侧面自适应卡体中为自适应卡容器创建一个循环。我已经参考了以下解决方案,但问题是我必须将循环添加到主体内的容器中,因此如何访问容器以添加我的文本块代码。 我必须在下面的位置添加 for 循环。

您可以先创建自适应文本块列表,然后将其分配到适当的位置。

                var textBlocks = new List<AdaptiveElement>();
                for (int i = 1; i < 5; i++)
                {
                    textBlocks.Add(new AdaptiveTextBlock() { Text = "Textblock" + i });
                }

                var adaptiveCard = new AdaptiveCard("1.0")
                {
                    Body = new List<AdaptiveElement>()
                    {
                        new AdaptiveContainer
                        {
                            Items=textBlocks
                        }
                    }

                };

你可以使用linq。类似于:

myList.Select(item => new AdaptiveTextBlock()
{
    Text = myList.text,
    ...
}).ToList(),

您应该看看 AdaptiveCard 模板。 它比你在那里尝试的要容易得多,包括 for 循环等。

使用模板,您只需为卡编写 json 代码并将您的数据绑定到它。无需创建所有这些 类 和 c# 循环...更易于处理且性能更好。

https://docs.microsoft.com/en-us/adaptive-cards/templating/