Hallo zusammen,
ich habe eine "SearchResultsPage.xaml" mit folgendem Code:
private SearchPane _searchPane;
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
_searchPane = SearchPane.GetForCurrentView();
_searchPane.SuggestionsRequested += this.OnSearchPaneSuggestionsRequested;
}
private void OnSearchPaneSuggestionsRequested(SearchPane sender, SearchPaneSuggestionsRequestedEventArgs e)
{
var deferral = e.Request.GetDeferral();
try
{
var queryText = e.QueryText;
if (queryText.Length >= 3)
{
var request = e.Request;
var viewModel = DataContext as AppViewModel;
if (viewModel != null)
{
var suggestions = viewModel.GetQuerySuggestions(e.QueryText, 5);
foreach (var suggestion in suggestions)
{
request.SearchSuggestionCollection.AppendQuerySuggestion(suggestion);
if (request.SearchSuggestionCollection.Size >= 5)
return;
}
//request.SearchSuggestionCollection.AppendQuerySuggestions(suggestions);
}
}
}
finally
{
deferral.Complete();
}
}
Beim 1. Suchbefehl bzw beim NavigateTo durch die app.xaml.cs wird das Event OnSearchPaneSuggestionsRequested gebunden. Anschließend ändere ich den Suchbegriff und per Debugger sehe ich das er in die Methode springt und durch meine Unterfunktion GetQuerySuggestions auch ein Ergebnis bekommt, aber die Vorschlagsliste wird nicht angezeigt. Wennn ich den Begriff ändere bekomme ich ab und zu meine Vorschlagliste.
Ist ein regelrechte Blinker-Funktion...mal funktioniert es, mal nicht. Ich habe irgendwo einen Google Post gefunden in dem es hieß das ein Delay von mind 500ms eingebaut werden muss. Brachte aber leider ebenfalls nichts...Bitte um HIlfe. Danke
MFG