SearchBox.SuggestionsRequested Ereignis

Definition

Tritt auf, wenn sich der Abfragetext des Benutzers ändert und die App neue Vorschläge bereitstellen muss, die im Suchbereich angezeigt werden.

// Register
event_token SuggestionsRequested(TypedEventHandler<SearchBox, SearchBoxSuggestionsRequestedEventArgs const&> const& handler) const;

// Revoke with event_token
void SuggestionsRequested(event_token const* cookie) const;

// Revoke with event_revoker
SearchBox::SuggestionsRequested_revoker SuggestionsRequested(auto_revoke_t, TypedEventHandler<SearchBox, SearchBoxSuggestionsRequestedEventArgs const&> const& handler) const;
public event TypedEventHandler<SearchBox,SearchBoxSuggestionsRequestedEventArgs> SuggestionsRequested;
function onSuggestionsRequested(eventArgs) { /* Your code */ }
searchBox.addEventListener("suggestionsrequested", onSuggestionsRequested);
searchBox.removeEventListener("suggestionsrequested", onSuggestionsRequested);
- or -
searchBox.onsuggestionsrequested = onSuggestionsRequested;
Public Custom Event SuggestionsRequested As TypedEventHandler(Of SearchBox, SearchBoxSuggestionsRequestedEventArgs) 
<SearchBox SuggestionsRequested="eventhandler"/>

Ereignistyp

Hinweise

Sie können Vorschläge aus verschiedenen Quellen erhalten:

  • Sie können sie selbst definieren. Sie könnten beispielsweise eine Liste der Automobilhersteller erstellen.
  • Sie können sie von Windows abrufen, wenn Ihre App lokale Dateien durchsucht.
  • Sie können sie von einem Webdienst oder Server abrufen.

Richtlinien zur Benutzerfreundlichkeit zum Anzeigen von Vorschlägen finden Sie unter Richtlinien und Prüfliste für die Suche.

Sie können LocalContentSuggestionSettings verwenden, um Vorschläge basierend auf lokalen Dateien von Windows in nur wenigen Codezeilen hinzuzufügen. Alternativ können Sie sich für das SuggestionsRequested-Ereignis des Suchfeldsteuerelements registrieren und Eine eigene Liste von Vorschlägen erstellen, die aus Vorschlägen besteht, die Sie aus einer anderen Quelle (z. B. einer lokal definierten Liste oder einem Webdienst) abgerufen haben.

Laden Sie das SearchBox-Steuerelementbeispiel herunter, um Codebeispiele zum Hinzufügen von Suchvorschlägen zu erhalten. Das Beispiel veranschaulicht, wie Sie Suchvorschläge mithilfe aller drei möglichen Quellen hinzufügen und Vorschläge für ostasiatische Sprachen mithilfe alternativer Formen des Abfragetexts hinzufügen, der von einem Eingabemethoden-Editor (IME) generiert wird. (Wir empfehlen die Verwendung von Abfragetextalternativen, wenn Ihre App von japanischen oder chinesischen Benutzern verwendet wird.)

Arten von Suchvorschlägen

Es gibt zwei Arten von Vorschlägen, die Ihre App anzeigen kann: Vorschläge, die Benutzern helfen, eine Abfrage zu verfeinern (Abfragevorschläge) und Vorschläge, die tatsächliche Ergebnisse einer Abfrage sind (Ergebnisvorschläge). Sie können eine oder beide Arten von Vorschlägen anzeigen.

Wenn Sie Abfragevorschläge bereitstellen und der Benutzer einen auswählt, sollte Ihre App antworten, indem sie ergebnisse für die ausgewählte, eingeschränkte Abfrage auf der Suchergebnisseite Ihrer App anzeigt.

Wenn Sie Ergebnisvorschläge bereitstellen, müssen Sie auch einen ResultSuggestionChosen-Ereignishandler registrieren, damit Sie reagieren können, wenn der Benutzer einen Ihrer Ergebnisvorschläge auswählt und Sie das Ergebnis dem Benutzer anzeigen können.

Anzeigen von App-bereitgestellten Vorschlägen

Nachdem Sie Vorschläge erhalten haben, zeigen Sie sie an, indem Sie sie der SearchSuggestionsRequest hinzufügen. SearchSuggestionCollection.

Wenn Sie sowohl Abfragevorschläge als auch Ergebnisvorschläge anzeigen möchten, sollten Sie die Vorschläge nach Vorschlagstyp (Abfrage oder Ergebnis) gruppieren und die Gruppen mithilfe von AppendSearchSeparator trennen. Jedes Trennzeichen tritt an die Stelle eines Vorschlags und muss von mindestens einem Vorschlag gefolgt werden, wodurch die Anzahl der Vorschläge verringert wird, die Sie anzeigen können.

Die maximale Länge aller Textfelder in einem Vorschlag (z. B. Text, Detailtext und Bild-Alternativtext) beträgt 512 Zeichen.

Weitere Informationen zur Verwendung von Vorschlägen zum Erstellen einer guten Suchoberfläche für Ihre Benutzer finden Sie unter Richtlinien und Prüfliste für die Suche.

asynchrones Behandeln des SuggestionsRequested-Ereignisses

Wenn Sie asynchron auf das SuggestionsRequested-Ereignis reagieren möchten, müssen Sie ein SearchSuggestionsRequestDeferral-Objekt abrufen, bevor Sie die Vorschlagsliste bearbeiten. Hier sehen Sie ein Beispiel aus der Schnellstartanleitung: Hinzufügen der Suche zu einer App , das zeigt, wie:

public async static void SearchBox_SuggestionsRequested(
    SearchBox sender, 
    SearchBoxSuggestionsRequestedEventArgs args)
{

    // This object lets us edit the SearchSuggestionCollection asynchronously. 
    var deferral = args.Request.GetDeferral();

    try { 

        // Retrieve the system-supplied suggestions.
        var suggestions = args.Request.SearchSuggestionCollection;

        var groups = await SampleDataSource.GetGroupsAsync();
        foreach (var group in groups)
        {
            var matchingItems = group.Items.Where(
                item => item.Title.StartsWith(
                    args.QueryText, StringComparison.CurrentCultureIgnoreCase));

            foreach (var item in matchingItems)
            {
                suggestions.AppendQuerySuggestion(item.Title);
            }
        }

        foreach (string alternative in args.LinguisticDetails.QueryTextAlternatives)
        {
            if (alternative.StartsWith(
                args.QueryText, StringComparison.CurrentCultureIgnoreCase))
            {
                suggestions.AppendQuerySuggestion(alternative); 
            }
        }
    }
    finally {
        deferral.Complete();
    }

}

Gilt für:

Weitere Informationen