0
这是我的基本代码什么是切换从或退出formFlow到对话框中博特框架
的最佳途径formFlow工作正常,并检查,如果条件之后,就应该去别的部分,它在它的部分,但在其他部分写这行代码
await Conversation.SendAsync(activity,() => new AskMeAnything());
AskMeAnything是一个类实现Idialog。问题是,它再次去/调用formflow而不是跳到上面提到的对话框中。
我读了关于IdialogStack,但无法理解如何删除堆栈顶部的对话框或与之相关的东西。
我需要帮助移动到其他对话框,而无需循环到formflow。
感谢
感谢评论,只是想了解你,让我说我创建了一个根dilaog并调用了一次子对话框,所以下一次,根对话框将在堆栈顶部,然后第一个子对话框将会在它下面,那么我的新子对话框怎么会被调用? ..任何示例或详细的解释将帮助 –
不,这是不正确的。当您使用“调用”或“转发”方法从根对话框启动子对话框时,子对话框将置于堆栈的顶部。所有消息都来自控制器,指向堆栈的顶部,在此操作之后将成为子对话框。所以消息将不再在根对话框中处理。一旦对话完成后,您可以调用“完成”方法结束对话框,然后将子对话框从堆栈中取消,使根对话框成为堆栈顶部。 –
谢谢Xeno - 如果你通过看到上面的图片给出我的概率的解决方案,我会更加高兴..我打电话给“makerootdialog”使用Conversation.sendasync()调用表单流。一旦表单流完成,我打电话给它的.Done()方法。根据新的请求,它会转到其他部分(如图所示),在那里我使用Conversation.SendAsync(...)调用另一个对话框,但是再次调用Formflow。你能帮助我吗? –