Microsoft Bot Framework

时间:2016-06-01 19:02:37

标签: c# botframework

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

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

public string Passenger { get; set; }

这是我的动态领域:

.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);
                                                        }))

1 个答案:

答案 0 :(得分:6)

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

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

显示方法的

Handlers(缺少PromptConfirm对话框)