使用Microsoft Bot Framework中的FormFlow的动态MULTIPLE选项字段

1 c# botframework

假设您正在动态获取可以登机的乘客列表.用户需要能够从列表中选择任意数量的乘客来登记.我可以制作动态列表,但我无法弄清楚如何允许它选择多个选项.我在动态字段上使用了.SetAllowsMultiple(true),但它不起作用.我在这里查看了文档中的formflow示例,但该示例仅允许单个选择.你会如何使它与多个选择一起工作?

这是我在CheckinDialog类中放置的属性:

public string Passenger { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是我的动态领域:

.Field(new FieldReflector<CheckinDialog>(nameof(Passenger))
                                                        .SetAllowsMultiple(true)
                                                        .SetActive((state) =>
                                                        {
                                                            return CheckinDialog.Passengers != null && CheckinDialog.Passengers.Count > 0;
                                                        })
                                                        .SetPrompt(new PromptAttribute(Resources.Checkin.Passengers))
                                                        .SetType(null)
                                                        .SetDefine((state, field) =>
                                                        {
                                                            foreach (var pax in GetPassengers())
                                                                field
                                                                    .AddDescription(pax, pax)
                                                                    .AddTerms(pax, pax);
                                                            return TaskHelpers.FromResult(true);
                                                        }))
Run Code Online (Sandbox Code Playgroud)

Eze*_*dib 6

一个解决方法是多次启动表格,这意味着一旦您第一次填写表格并选择一名乘客,在表格填写的回调中,您可以提示用户是否要检查另一位乘客.如果答案是肯定的,您可以再次启动表单.

这将意味着您必须保留乘客的选择并使用它来过滤表格中显示的乘客列表(以避免两次登记乘客).

以下是一些显示方法的示例代码(缺少PromptConfirm对话框)