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
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Rendere le variabili read-only in una pipeline di Azure DevOps
Testare l'invio dei messaggi con Event Hubs Data Explorer
Utilizzare una qualunque lista per i parametri di tipo params in C#
Ridurre il reflow ottimizzando il CSS
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Introduzione alle Container Queries
Utilizzare WebJobs su Linux con Azure App Service
Path addizionali per gli asset in ASP.NET Core MVC
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Controllare la telemetria con .NET Aspire
I più letti di oggi
- Versione 0.16 per Mono
- Microsoft Security Bulletin MS05-014
- Effettuare un redirect permanente di una pagina ASP.NET 4.0
- Gestire coppie chiave-valore con Autocomplete di jQuery UI in ASP.NET
- Usare Json.NET come motore di serializzazione in ASP.NET MVC
- Attivare l'output caching su ASP.NET Web API
- Utilizzare la configurazione di .NET Core nelle Azure Function
- Utilizzara le direttive di validazione degli input con AngularJS
- Utilizzare il proxy del WebServer di Angular per simulare chiamate ad API sullo stesso dominio
- Utilizzare la libreria JSLINQ per trovare gli oggetti comuni in due array JavaScript