在Windows 8.1商店应用程序中,搜索框控件在输入更快或更长的查询时崩溃
本文关键字:输入 崩溃 查询 控件 Windows 应用程序 搜索 | 更新日期: 2023-09-27 18:17:04
我正在尝试实现搜索框与搜索建议。每次我输入更快或冗长的查询文本时,应用程序就会崩溃。异常不会在catch块中被捕获。
private void SearchBoxEventsSuggestionsRequested(object sender, SearchBoxSuggestionsRequestedEventArgs e)
{
try {
var pList = GetPList();
string queryText = e.QueryText;
if (!string.IsNullOrEmpty(queryText))
{
Windows.ApplicationModel.Search.SearchSuggestionCollection suggestionCollection = e.Request.SearchSuggestionCollection;
foreach (var p in pList)
{
bool exists = p.desc.IndexOf(queryText, StringComparison.CurrentCultureIgnoreCase) > -1;
if (exists)
{
string result = p.desc + Environment.NewLine + p.name;
suggestionCollection.AppendQuerySuggestion(result);
}
}
}
}
catch (Exception ex){}
}
GetPList方法不是异步的。
我在这里错了什么?
您可以尝试延迟方法。在按其他键之前请等待一秒钟。一旦用户停止输入,那么你可以执行搜索/过滤。
启动计时器并在Tick中执行操作。如有其他按键,请立即按下。重置计时器,使Tick进一步延迟。