Я хочу создать петлю в боковом адаптивном теле карты для адаптивного контейнера карты. Я сослался на приведенное ниже решение, но проблема в том, что мне нужно добавить цикл к контейнеру внутри тела, чтобы получить доступ к контейнеру для добавления моего кода текстового блока. Цикл C # Botframework внутри AdaptiveCard Я должен добавить цикл for ниже положение.
Цикл Botframework внутри AdaptiveCard C #
Ответы (3)
Вы можете сначала создать список адаптивных текстовых блоков, а затем назначить его в соответствующей позиции.
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
}
}
};
person
Wajeed-MSFT
schedule
22.11.2019
Вы можете использовать linq. Что-то вроде:
myList.Select(item => new AdaptiveTextBlock()
{
Text = myList.text,
...
}).ToList(),
person
waleed
schedule
24.11.2019
Вам стоит взглянуть на шаблоны AdaptiveCard. Это намного проще, чем то, что вы пытаетесь там, в том числе для петель и т. Д.
Используя шаблоны, вы просто пишете json-код для карты и привязываете к нему свои данные. Нет необходимости создавать все эти классы и циклы C # ... проще в обращении и лучше производительность.
https://docs.microsoft.com/en-us/adaptive-cards/templating/
person
Tim Cadenbach
schedule
24.11.2019
medium.com/@ tim.cadenbach / я в значительной степени объяснил здесь действительно похожий сценарий на ваш
- person Tim Cadenbach; 24.11.2019