我有一个枚举
public enum SupportedProducts{
Prod1,Prod2,Prod3 //..and so on
}
我尝试使用轻松的FormFlow
列出此内容。但是,这是我必须提示的唯一问题。因此,我认为我不需要为此使用FormFlow。
是否可以在不使用FormFlow的情况下列出枚举的值?如何处理选项的结果?。
答案 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
方法,并将用户选择的选项传递给它。