我對RootDialog有以下要求: 1)向用戶提供一組選擇; 2)但與此同時,讓用戶隨意問我什麼,甚至與提供的選項無關,並將其轉發給QnAMaker;使用與CardAction類似的AdaptativeCard創建按鈕列表?
爲了適應我第一次tryed這
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
PromptDialog.Choice(context, OnOptionSelected, options, "Sobre o que você deseja falar ?", "Você deve escolher entre uma das opções a seguir");
}
在這種情況下,OnOptionSelected方法成功地稱爲第一要求。偉大的:)
但是當我試圖推敲第二個要求時,我意識到「Prompt.Choice」策略不是一個好的選擇,導致它停止調用我的「MessageReceivedAsync」方法,如果用戶鍵入的somithing不同於提示的選項。用戶 在這種情況下,我已經變得無法處理文本自由輸入,因爲
PromptDialog.Choice(context, OnOptionSelected, options, "Sobre o que você deseja falar ?", "Você deve escolher entre uma das opções a seguir");
已經創建了自己的對話框中的對話堆棧的頂部,防止我的RootDialog處理由鍵入的文本用戶;
然後,我已經有了一個聰明的想法來替換「PromptDialog.Choice」到AdaptativeCard來呈現帶有我想要的選項的按鈕,但不更改我的對話框堆棧,因此如果用戶輸入完全不同的選項我已經向他展示了,我可以將其轉發給Q &製造商。
要創建我AdaptativeCard我用像波紋管一SubmitAction:
card.Actions.Add(new SubmitAction
{
Title = option,
Data = option
});
但問題是,當用戶點擊SubmitAction(呈現爲一個按鈕,在模擬器上)按鈕的文本用戶已經點擊了不會看到的對話,而是沉迷於我的MessageReceivedAsync方法。 有什麼辦法可以使用AdaptativeCard創建一個按鈕列表,其行爲與VideoCard.Buttons上使用的CardAction類似?我的意思是一張卡片,當你點擊它時,你可以看到它的文本就像按鈕對面的TextBlock一樣?
爲什麼選擇自適應卡而不只是帶按鈕的英雄卡?此外,使用提示選項是可行的,但您需要從中繼承來定製它;你有沒有考慮這種方法? –
HeroCard對我的工作很好,謝謝你的提示。但是,你有沒有繼承PromptDialog.Choice的例子? –