我正在使用Bot Framework,我想显示使用 PromptDialog.Choice 方法附加图像的选项列表,以便利用 ResumeAfterChoose < / strong>控制我的业务逻辑的方法。但是,我只看到了用EchoBot Sample编写的附件对话框,它只创建了一些消息列表,这些消息使我在客户选择其中一个列表后很难处理我的业务逻辑。请告诉我实现它的方法。感谢
答案 0 :(得分:4)
开箱即用,你无法做到这一点。但是有几种方法可以实现这一点。
首先,您说使用附件不会为您工作,因为您无法处理业务逻辑。这是部分正确的;但不是因为你提到的原因。
您可以将HeroCards
列表与按钮放在一起,并使用附件的轮播布局(请参阅RichCards和CarouselCards示例)。然后,您只需执行context.Wait
到不同的方法(类似于ResumeAfterChoose
中的PromptDialog
方法)并处理其中的逻辑。该方法将获得单击按钮的值,然后您可以执行业务逻辑。现在......需要注意的是,如果用户写入任何与选项不对齐的内容,您仍然可以使用此方法。
PromptDialog.Choice
非常相似...唯一的区别是它添加了一个Retry逻辑来处理我提到的警告,并且使用的布局是一个列表,因为它只是使用多个按钮(选项)呈现单个HeroCard
我在这种情况下的方法是尝试将自定义PromptStyler组合在一起,覆盖Apply<T>
方法并添加逻辑以基于所需的方式呈现Choice选项PromptStyle已使用。
默认情况下,PromptDialog.Choice使用PromptStyle.Auto,即游戏结束时(在PromptStyler中)converts the options into a HeroCard with multiple buttons。您可以轻松地更改该逻辑以创建多张卡片,并为其使用图像。