SearchBox.SuggestionsRequested Evento

Definição

Ocorre quando o texto da consulta do usuário é alterado e o aplicativo precisa fornecer novas sugestões para exibir no painel de pesquisa.

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

Comentários

Você pode obter sugestões de várias fontes:

  • Você pode defini-los por conta própria. Por exemplo, você pode criar uma lista de fabricantes de automóveis.
  • Você pode obtê-los do Windows se seu aplicativo pesquisar arquivos locais.
  • Você pode obtê-los de um serviço Web ou servidor.

Para obter diretrizes de experiência do usuário para exibir sugestões, consulte Diretrizes e lista de verificação para pesquisa.

Você pode usar LocalContentSuggestionSettings para adicionar sugestões, com base em arquivos locais do Windows, em apenas algumas linhas de código. Como alternativa, você pode se registrar no evento SuggestionsRequested do controle de caixa de pesquisa e criar sua própria lista de sugestões composta por sugestões recuperadas de outra fonte (como uma lista definida localmente ou um serviço Web).

Para obter exemplos de código que mostram como adicionar sugestões de pesquisa, baixe o exemplo de controle SearchBox. O exemplo demonstra como adicionar sugestões de pesquisa usando todas as três fontes possíveis e como adicionar sugestões para idiomas do Leste Asiático usando formas alternativas do texto de consulta gerado por um IME (Editor de Método de Entrada). (É recomendável usar alternativas de texto de consulta se seu aplicativo for usado por usuários japoneses ou chineses.)

Tipos de sugestões de pesquisa

Há dois tipos de sugestões que seu aplicativo pode exibir: sugestões que ajudam os usuários a refinar uma consulta (sugestões de consulta) e sugestões que são resultados reais de uma consulta (sugestões de resultados). Você pode optar por exibir ou ambos os tipos de sugestões.

Se você fornecer sugestões de consulta e o usuário selecionar uma, seu aplicativo deverá responder exibindo os resultados da consulta selecionada e refinada na página de resultados da pesquisa do aplicativo.

Se você fornecer sugestões de resultados, também deverá registrar um manipulador de eventos ResultSuggestionChosen para que possa responder quando o usuário selecionar uma de suas sugestões de resultado e você poderá exibir o resultado para o usuário.

Exibindo sugestões fornecidas pelo aplicativo

Depois de obter sugestões, você as exibe adicionando-as ao SearchSuggestionsRequest. SearchSuggestionCollection.

Se você optar por exibir sugestões de consulta e sugestões de resultados, deverá agrupar as sugestões por tipo de sugestão (consulta ou resultado) e separar os grupos usando AppendSearchSeparator. Cada separador assume o lugar de uma sugestão e deve ser seguido por pelo menos uma sugestão, diminuindo o número de sugestões que você pode exibir.

O comprimento máximo de todos os campos textuais em uma sugestão (como texto, texto detalhado e texto alt da imagem) é de 512 caracteres.

Para saber mais sobre como usar sugestões para criar uma boa experiência de pesquisa para seus usuários em Diretrizes e lista de verificação para pesquisa.

Manipulando o evento SuggestionsRequested de forma assíncrona

Se você quiser responder ao evento SuggestionsRequested de forma assíncrona, deverá obter um objeto SearchSuggestionsRequestDeferral antes de editar a lista de sugestões. Aqui está um exemplo do Início Rápido: Adicionar pesquisa a um aplicativo que mostra como:

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

}

Aplica-se a

Confira também