从对话框调用表单
我有一个简单的表格,
[Serializable] class CreateNewLeadForm { public string FirstName; public string LastName; public static IForm BuildForm() { return new FormBuilder() .Message("Lets create a New Lead") .Field(nameof(FirstName)) .Field(nameof(LastName)) .Build(); } };
还有一个简单的对话框,
public class GreetDialog : IDialog { public async Task StartAsync(IDialogContext context) { context.Wait(MessageReceivedAsync); } public async Task MessageReceivedAsync(IDialogContext context, IAwaitable argument) { context.Wait(MessageReceivedAsync); } }
如何从主对话本身调用启动FormDialog? 一般来说,我们如何在Dialog中开始新的对话框?
要启动FormDialog,您可以执行以下操作:
var myform = new FormDialog(new CreateNewLeadForm(), CreateNewLeadForm.BuildForm, FormOptions.PromptInStart, null); context.Call (myform, FormCompleteCallback);
看看PizzaBot就是一个例子。
要在Dialog中启动新对话框,您可以执行以下操作:
- context.Call传递新对话框的实例和完成回调(如表格中所示)
-
context.Forward,您可以将消息转发到子对话框
context.Forward(new MyChildDialog(),ResumeAfterChildDialog,message,CancellationToken.None);