0

对于表单流案例,我具有以下属性:

public enum Offices{}

[Describe("Country")]
public string Country;
[Prompt("Which office are you working in?{||}")]
public Offices Office; 

我想根据指定的国家/地区填充办公室。例如,如果用户输入 India 作为 Country 字段,我希望办公室是 Mumbai、New Delhi 和 Pune。如果用户进入阿联酋,我希望办公室是迪拜和阿布扎比等......

我怎样才能做到这一点?

4

1 回答 1

1

这是一个类似于“如何在机器人框架 C# 中使用枚举类别和子类别? ”的问题,至少在如何做你需要的事情上。

使用 FormBuilder,您可以动态定义您的表单。FormBuilder 的完整文档在这里

回顾上一个 StackOverlfow 答案,您使用 FieldReflector 并允许您设置异步委托。在该委托中,您将根据 state.Country 值构建城市列表。它看起来像这样:

public static IForm<Offices> BuildForm()
{
    return new FormBuilder<Offices>()
          .Message("Welcome!")
          .Field(nameof(Country))
          .Field(new FieldReflector<Offices>(nameof(Office))
              .SetType(null)
              .SetDefine(async (state, field) =>
              {
                   //// Define your Officelogic here
                  switch (state.Country)
                  {
                      Country.Dubai:
                          ////logic to add Dubai city
                        break;
                      Country.UAE:
                          ////logic to add UAE cities
                        break;
                      default:
                          break;
                  }


                  return true;
              }))              
          .Build();
}
于 2018-10-04T15:51:39.930 回答