在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方法不是异步的。

我在这里错了什么?

在Windows 8.1商店应用程序中,搜索框控件在输入更快或更长的查询时崩溃

您可以尝试延迟方法。在按其他键之前请等待一秒钟。一旦用户停止输入,那么你可以执行搜索/过滤。

启动计时器并在Tick中执行操作。如有其他按键,请立即按下。重置计时器,使Tick进一步延迟。