Molte applicazioni per Windows Phone 7 si basano sull'interrogazione di servizi per ottenere dati da remoto a seconda delle richieste dell'utente. Tra queste, spesso viene data la possibilità all'utente di immettere del testo per effettuare una ricerca. Una funzionalità che è molto utile inserire nelle applicazioni è sicuramente il search as you type e cioè la possibilità di effettuare la ricerca mentre l'utente digita le lettere.
Per inserire questa funzionalità occorre sfruttare il DispatcherTimer, una classe che rappresenta un timer da riavviare ad ogni pressione dei tasti; quando il timer scatta si procede poi con la ricerca. In questo modo, se l'utente scrive velocemente non avviamo la ricerca, ma non appena attende un determinato tempo (mezzo secondo o un secondo), si avvia automatiacmente la ricerca.
Per fare questo occorre prima di tutto definire il timer nel costruttore della pagina.
private DispatcherTimer typeTimer;
public MainPage()
{
typeTimer = new DispatcherTimer();
typeTimer.Interval = TimeSpan.FromSeconds(0.5);
typeTimer.Tick += typeTimer_Tick;
}Nel relativo evento Tick non si fa altro che interrompere il timer, poiché viene continuamente ripetuto, e avviare l'interrogazione remota.
private void typeTimer_Tick(object sender, EventArgs e)
{
typeTimer.Stop();
DoSearch();
}A questo punto occorre intercettare l'evento TextChanged sulla casella di testo da monitorare e avviare il timer.
private void ReadWriteTB_TextChanged(object sender, RoutedEventArgs e)
{
typeTimer.Stop();
typeTimer.Start();
}Nell'evento si chiama Stop e Start per posticipare il tempo ogni volta che l'utente digita. E' possibile inoltre migliorare il codice annullando anche l'eventuale ricerca in corso chiamando l'Abort della classe WebRequest o il CancelAsync della classe WebClient.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
GitHub Copilot CLI in ambienti offline
Effettuare chiamate API tramite GitHub App
GitHub Quick Review per la valutazione dello stato di compliance dell'organizzazione aziendale
Canary release con .NET Aspire
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Esporre un server MCP esistente con Azure API Management
Cambiamenti in OpenAPI per la documentazione di ASP.NET
Azure SQL Database per dev: tutte le novità da non perdere
How to be a DevOps engineer in the AI era
Referenziare un package NuGet in una file based app .NET
Gestire trasferimenti cloud con Azure Storage Mover
Evitare la compressione degli artefatti in un workflow di GitHub


