2017-03-06 34 views
0

我想在用户搜索窗口小部件后询问用户想要使用哪个窗口小部件,这会生成一个窗口小部件列表。我希望能够点击小部件的名称,然后获取小部件的URL。当我运行下面的代码时,我得到了invalid need: expected Call, have PollBot Framework,提示选择对象列表

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

你缺少一个context.WaitOnWidgetSelected方法结束。

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

不可能,因为它没有收到结果。但是promptdialog永远不会被执行 – broodjetom

相关问题