Compartir a través de


SearchBox.SuggestionsRequested Evento

Definición

Se produce cuando cambia el texto de la consulta del usuario y la aplicación debe proporcionar nuevas sugerencias para mostrarse en el panel de búsqueda.

// 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 de evento

Comentarios

Puede obtener sugerencias de varios orígenes:

  • Puede definirlos usted mismo. Por ejemplo, podría crear una lista de fabricantes de automóviles.
  • Puede obtenerlos desde Windows si la aplicación busca archivos locales.
  • Puede obtenerlos desde un servicio web o un servidor.

Para obtener instrucciones sobre la experiencia del usuario para mostrar sugerencias, consulte Directrices y lista de comprobación para la búsqueda.

Puede usar LocalContentSuggestionSettings para agregar sugerencias, basadas en archivos locales de Windows, solo en unas pocas líneas de código. Como alternativa, puede registrarse para el evento SuggestionsRequested del control de cuadro de búsqueda y crear su propia lista de sugerencias que se componen de sugerencias recuperadas de otro origen (como una lista definida localmente o un servicio web).

Para obtener ejemplos de código que muestran cómo agregar sugerencias de búsqueda, descargue el ejemplo de control SearchBox. En el ejemplo se muestra cómo agregar sugerencias de búsqueda mediante los tres orígenes posibles y cómo agregar sugerencias para idiomas asiáticos orientales mediante formas alternativas del texto de consulta generado por un Editor de métodos de entrada (IME). (Se recomienda usar alternativas de texto de consulta si los usuarios japoneses o chinos usarán la aplicación).

Tipos de sugerencias de búsqueda

Hay dos tipos de sugerencias que la aplicación puede mostrar: sugerencias que ayudan a los usuarios a refinar una consulta (sugerencias de consulta) y sugerencias que son resultados reales de una consulta (sugerencias de resultados). Puede optar por mostrar o ambos tipos de sugerencias.

Si proporciona sugerencias de consulta y el usuario selecciona una, la aplicación debe responder mostrando los resultados de la consulta seleccionada y refinada en la página de resultados de búsqueda de la aplicación.

Si proporciona sugerencias de resultados, también debe registrar un controlador de eventos ResultSuggestionChosen para que pueda responder cuando el usuario seleccione una de las sugerencias de resultados y pueda mostrar el resultado al usuario.

Mostrar sugerencias proporcionadas por la aplicación

Después de obtener sugerencias, aparecen agregándolas a SearchSuggestionsRequest. SearchSuggestionCollection.

Si decide mostrar las sugerencias de consulta y las sugerencias de resultados, debe agrupar las sugerencias por tipo de sugerencia (consulta o resultado) y separar los grupos mediante AppendSearchSeparator. Cada separador tiene el lugar de una sugerencia y debe seguir al menos una sugerencia, lo que reduce el número de sugerencias que puede mostrar.

La longitud máxima de todos los campos textuales de una sugerencia (como texto, texto detallado e texto alternativo de imagen) es de 512 caracteres.

Para obtener más información sobre el uso de sugerencias para crear una buena experiencia de búsqueda para los usuarios en Directrices y lista de comprobación para la búsqueda.

Controlar el evento SuggestionsRequested de forma asincrónica

Si desea responder al evento SuggestionsRequested de forma asincrónica, debe obtener un objeto SearchSuggestionsRequestDeferral antes de editar la lista de sugerencias. Este es un ejemplo de Inicio rápido: Agregar búsqueda a una aplicación que muestra cómo:

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

}

Se aplica a

Consulte también