Цикл Botframework внутри AdaptiveCard C #

Я хочу создать петлю в боковом адаптивном теле карты для адаптивного контейнера карты. Я сослался на приведенное ниже решение, но проблема в том, что мне нужно добавить цикл к контейнеру внутри тела, чтобы получить доступ к контейнеру для добавления моего кода текстового блока. Цикл C # Botframework внутри AdaptiveCard Я должен добавить цикл for ниже положение. введите здесь описание изображения


person Mayuresh Jaiswal    schedule 22.11.2019    source источник


Ответы (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
comment
medium.com/@ tim.cadenbach / я в значительной степени объяснил здесь действительно похожий сценарий на ваш - person Tim Cadenbach; 24.11.2019