Partager via


SearchBox.SuggestionsRequested Événement

Définition

Se produit lorsque le texte de la requête de l’utilisateur change et que l’application doit fournir de nouvelles suggestions à afficher dans le volet de recherche.

// 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"/>

Type d'événement

Remarques

Vous pouvez obtenir des suggestions à partir de plusieurs sources :

  • Vous pouvez les définir vous-même. Par exemple, vous pouvez créer une liste de constructeurs automobiles.
  • Vous pouvez les obtenir à partir de Windows si votre application recherche des fichiers locaux.
  • Vous pouvez les obtenir à partir d’un service web ou d’un serveur.

Pour obtenir des instructions relatives à l’expérience utilisateur pour l’affichage des suggestions, consultez Recommandations et liste de contrôle pour la recherche.

Vous pouvez utiliser LocalContentSuggestionSettings pour ajouter des suggestions, basées sur des fichiers locaux de Windows, en quelques lignes de code seulement. Vous pouvez également vous inscrire à l’événement SuggestionsRequested du contrôle de zone de recherche et créer votre propre liste de suggestions composée de suggestions que vous avez récupérées à partir d’une autre source (comme une liste définie localement ou un service web).

Pour obtenir des exemples de code qui montrent comment ajouter des suggestions de recherche, téléchargez l’exemple de contrôle SearchBox. L’exemple montre comment ajouter des suggestions de recherche à l’aide des trois sources possibles et comment ajouter des suggestions pour les langues d’Asie de l’Est à l’aide d’autres formes du texte de requête généré par un éditeur de méthode d’entrée (IME). (Nous vous recommandons d’utiliser des alternatives de texte de requête si votre application sera utilisée par des utilisateurs japonais ou chinois.)

Types de suggestions de recherche

Il existe deux types de suggestions que votre application peut afficher : les suggestions qui aident les utilisateurs à affiner une requête (suggestions de requête) et les suggestions qui sont des résultats réels d’une requête (suggestions de résultats). Vous pouvez choisir d’afficher l’un ou l’autre des types de suggestions.

Si vous fournissez des suggestions de requête et que l’utilisateur en sélectionne une, votre application doit répondre en affichant les résultats de la requête sélectionnée et affinée dans la page des résultats de recherche de votre application.

Si vous fournissez des suggestions de résultats, vous devez également inscrire un gestionnaire d’événements ResultSuggestionChosen afin de pouvoir répondre lorsque l’utilisateur sélectionne l’une de vos suggestions de résultats et vous pouvez afficher le résultat à l’utilisateur.

Affichage des suggestions fournies par l’application

Une fois que vous avez obtenu des suggestions, vous les affichez en les ajoutant à searchSuggestionsRequest. SearchSuggestionCollection.

Si vous choisissez d’afficher les suggestions de requête et les suggestions de résultats, vous devez regrouper les suggestions par type de suggestion (requête ou résultat) et séparer les groupes à l’aide d’AppendSearchSeparator. Chaque séparateur prend la place d’une suggestion et doit être suivi d’au moins une suggestion, ce qui réduit le nombre de suggestions que vous pouvez afficher.

La longueur maximale de tous les champs textuels d’une suggestion (tels que le texte, le texte de détail et le texte de remplacement d’image) est de 512 caractères.

Pour en savoir plus sur l’utilisation des suggestions pour créer une expérience de recherche optimale pour vos utilisateurs, consultez Recommandations et liste de contrôle pour la recherche.

Gestion asynchrone de l’événement SuggestionsRequested

Si vous souhaitez répondre à l’événement SuggestionsRequested de manière asynchrone, vous devez obtenir un objet SearchSuggestionsRequestDeferral avant de modifier la liste de suggestions. Voici un exemple de démarrage rapide : Ajout d’une recherche à une application qui montre comment :

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();
    }

}

S’applique à

Voir aussi