gpt4 book ai didi

c# - 从对话框中调用表单

转载 作者:太空狗 更新时间:2023-10-29 22:57:34 26 4
gpt4 key购买 nike

我有一个简单的表格,

 [Serializable]
class CreateNewLeadForm
{
public string FirstName;
public string LastName;
public static IForm<CreateNewLeadForm> BuildForm()
{

return new FormBuilder<CreateNewLeadForm>()
.Message("Lets create a New Lead")
.Field(nameof(FirstName))
.Field(nameof(LastName))
.Build();

}
};

还有一个简单的对话框,

public class GreetDialog : IDialog<object>
{
public async Task StartAsync(IDialogContext context)
{

context.Wait(MessageReceivedAsync);
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> argument)
{
context.Wait(MessageReceivedAsync);
}
}

如何从主对话框本身调用 Initiate FormDialog?一般来说,我们如何在对话框中启动新对话框?

最佳答案

为了启动一个 FormDialog,你可以这样做:

var myform = new FormDialog<CreateNewLeadForm>(new CreateNewLeadForm(), CreateNewLeadForm.BuildForm, FormOptions.PromptInStart, null);

context.Call<CreateNewLeadForm>(myform, FormCompleteCallback);

查看 PizzaBot举个例子。

要在 Dialog 中启动新对话,您可以执行以下操作:

  • context.Call 传递新对话框的实例和完成回调(如在表单中)
  • context.Forward,您可以在其中转发消息到子对话框

    context.Forward(new MyChildDialog(), ResumeAfterChildDialog, message, CancellationToken.None);

关于c# - 从对话框中调用表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37522294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com