могут ли адаптивные карты в Bot Framework v3 содержать динамические выпадающие списки - PullRequest
0 голосов
/ 21 марта 2019

Я использую BOT Framework v 3, у меня есть адаптивная карта, которая принимает данные от пользователя, и я хочу, чтобы значения в раскрывающемся меню были динамическими, если это возможно. Вот код дизайна адаптивной карты, как вы можете видеть, я ввелвыбор вручную вместо этого он хочет, чтобы он был динамическим из базы данных

var card = new AdaptiveCard()
{
    Body = new List<CardElement>()
    {
        new TextBlock()
        {
            Color = TextColor.Attention,
            Weight = TextWeight.Bolder,
            Size = TextSize.Medium,
            Text = "Select a title",
        },
        new ChoiceSet()
        {
            Id = "title",
            Style = ChoiceInputStyle.Compact,
            IsRequired = false,
            IsMultiSelect = false,
            Value = "1",
            Choices = new List<Choice>()
            {
                new Choice()
                {
                    Title = "Swiss cargo",
                    Value = "Swiss cargo",
                },
                new Choice()
                {
                    Title = "ticket booking",
                    Value = "ticket booking",
                },
            },
        },
    },
};

1 Ответ

0 голосов
/ 22 марта 2019

Предполагая, что вы можете поместить свои данные в список строк, ваша Adaptive Card может быть легко создана динамически с помощью Linq.Если вы хотите продолжать использовать ту же библиотеку Adaptive Cards, она будет выглядеть так:

var data = new List<string> { "Swiss cargo", "ticket booking" };

var card = new AdaptiveCard()
{
    Body = new List<CardElement>()
    {
        new TextBlock()
        {
            Color = TextColor.Attention,
            Weight = TextWeight.Bolder,
            Size = TextSize.Medium,
            Text = "Select a title",
        },
        new ChoiceSet()
        {
            Id = "title",
            Style = ChoiceInputStyle.Compact,
            IsRequired = false,
            IsMultiSelect = false,
            Value = "1",
            Choices = data.Select(item => new Choice { Title = item, Value = item }).ToList(),
        },
    },
};
...