2017-03-06 5 views
0

ウィジェットを検索した後にどのウィジェットを使用するかをユーザーに尋ねると、ウィジェットのリストが表示されます。私は、ウィジェットの名前をクリックし、そのウィジェットのURLを取得できるようにしたい。次のコードを実行すると、invalid need: expected Call, have Pollが得られます。Botフレームワーク、promptchoiceオブジェクトのリスト

public async Task SelectAfterSearch(IDialogContext context, List<Widget> widgetlist) 
{ 
    PromptDialog.Choice(context, this.OnWidgetSelected, GetListOfWidgets("list"), "Which one do you want more information about?", "Not a valid option", 3); 
} 

public async Task OnWidgetSelected(IDialogContext context, IAwaitable<Widget> result) 
{ 
    var chosen = await result; 
    await context.PostAsync($"You have chosen {chosen.Name}: {chosen.Url}"); 
} 

答えて

2

あなたはOnWidgetSelectedメソッドの最後にcontext.Waitが欠落しています。

public async Task OnWidgetSelected(IDialogContext context, IAwaitable<Widget> result) 
{ 
    var chosen = await result; 
    await context.PostAsync($"You have chosen {chosen.Name}: {chosen.Url}"); 
    context.Wait(...) // => usually you Wait on the MessageReceived method. 
} 
+0

なお同じエラーがあります。 – broodjetom

+0

OnWidgetSelectedにブレークポイントを設定した場合、ヒットしますか? –

+0

No.おそらく結果を受け取っていないためです。しかし、プロンプトダイアグラムは決して実行されません。 – broodjetom

関連する問題