SearchBox.SuggestionsRequested Evento

Definizione

Si verifica quando il testo della query dell'utente cambia e l'app deve fornire nuovi suggerimenti da visualizzare nel riquadro di ricerca.

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

Tipo evento

Commenti

È possibile ottenere suggerimenti da diverse origini:

  • È possibile definirli autonomamente. Ad esempio, è possibile creare un elenco di produttori di automobili.
  • È possibile ottenerli da Windows se l'app cerca file locali.
  • È possibile ottenerli da un servizio Web o da un server.

Per le linee guida per l'esperienza utente per la visualizzazione dei suggerimenti, vedere Linee guida ed elenco di controllo per la ricerca.

È possibile usare LocalContentSuggestionSettings per aggiungere suggerimenti, in base ai file locali di Windows, in poche righe di codice. In alternativa, è possibile registrare per l'evento SuggestionsRequested del controllo casella di ricerca e creare un elenco di suggerimenti personalizzati che è costituito da suggerimenti recuperati da un'altra origine ,ad esempio un elenco definito in locale o un servizio Web.

Per esempi di codice che illustrano come aggiungere suggerimenti di ricerca, scaricare l'esempio di controllo SearchBox. L'esempio illustra come aggiungere suggerimenti di ricerca usando tutte e tre le possibili origini e come aggiungere suggerimenti per le lingue asiatiche orientali usando forme alternative del testo della query generato da un editor di metodi di input (IME). È consigliabile usare alternative di testo di query se l'app verrà usata dagli utenti giapponesi o cinesi.

Tipi di suggerimenti di ricerca

Esistono due tipi di suggerimenti che l'app può visualizzare: suggerimenti che consentono agli utenti di perfezionare una query (suggerimenti di query) e suggerimenti che sono risultati effettivi di una query (suggerimenti dei risultati). È possibile scegliere di visualizzare o entrambi i tipi di suggerimenti.

Se si forniscono suggerimenti di query e l'utente ne seleziona uno, l'app deve rispondere visualizzando i risultati per la query selezionata, affinata nella pagina dei risultati della ricerca dell'app.

Se si forniscono suggerimenti per i risultati, è necessario registrare anche un gestore eventi ResultSuggestionChosen in modo da poter rispondere quando l'utente seleziona uno dei suggerimenti dei risultati ed è possibile visualizzare il risultato all'utente.

Visualizzazione di suggerimenti forniti dall'app

Dopo aver ottenuto suggerimenti, vengono visualizzati aggiungendoli all'oggetto SearchSuggestionsRequest. SearchSuggestionCollection.

Se si sceglie di visualizzare sia i suggerimenti di query che i suggerimenti dei risultati, è necessario raggruppare i suggerimenti in base al tipo di suggerimento (query o risultato) e separare i gruppi usando AppendSearchSeparator. Ogni separatore prende il posto di un suggerimento e deve essere seguito da almeno un suggerimento, riducendo il numero di suggerimenti che è possibile visualizzare.

La lunghezza massima di tutti i campi testuali in un suggerimento (ad esempio testo, testo dettagliato e testo alternativo dell'immagine) è di 512 caratteri.

Per altre informazioni sull'uso dei suggerimenti per creare un'esperienza di ricerca ottimale per gli utenti in Linee guida ed elenco di controllo per la ricerca.

Gestione asincrona dell'evento SuggestionsRequested

Se si vuole rispondere all'evento SuggestionsRequested in modo asincrono, è necessario ottenere un oggetto SearchSuggestionsRequestDeferral prima di modificare l'elenco di suggerimenti. Ecco un esempio di avvio rapido: Aggiunta di ricerca a un'app che illustra come:

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

}

Si applica a

Vedi anche