我可以不使用FormFlow列出枚举的值吗?

时间:2018-08-13 06:12:06

标签: c# botframework

我有一个枚举

public enum SupportedProducts{
    Prod1,Prod2,Prod3 //..and so on
}

我尝试使用轻松的FormFlow列出此内容。但是,这是我必须提示的唯一问题。因此,我认为我不需要为此使用FormFlow。

是否可以在不使用FormFlow的情况下列出枚举的值?如何处理选项的结果?。

1 个答案:

答案 0 :(得分:1)

您可以使用PromptDialog.Choice并将枚举作为选项传递。 示例代码为:

public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
    {
        var message = await argument;
        PromptDialog.Choice(context, ChoiceResumeAfter, (IEnumerable<SupportedProducts>)Enum.GetValues(typeof(SupportedProducts)), "Select a product");
    }

private async Task ChoiceResumeAfter(IDialogContext context, IAwaitable<SupportedProducts> result)
    {
        var response = await result;
        await context.PostAsync($"You chose {response.ToString()}");
        context.Wait(MessageReceivedAsync);
    }

因此,在这里,当用户选择一个选项时,将调用ChoiseResumeAfter方法,并将用户选择的选项传递给它。

示例演示: enter image description here