Recherche…


Observation de l'événement TextChanged sur une zone de texte

Une observable est créée à partir de l'événement TextChanged de la zone de texte. De plus, toute entrée est sélectionnée uniquement si elle est différente de la dernière entrée et si aucune entrée n’a été effectuée dans les 0,5 secondes. La sortie dans cet exemple est envoyée à la console.

Observable
     .FromEventPattern(textBoxInput, "TextChanged")
     .Select(s => ((TextBox) s.Sender).Text)
     .Throttle(TimeSpan.FromSeconds(0.5))
     .DistinctUntilChanged()
     .Subscribe(text => Console.WriteLine(text));

Diffusion de données à partir d'une base de données avec Observable

Supposons qu'une méthode retourne IEnumerable<T> , fe

private IEnumerable<T> GetData()
{
    try 
    {
        // return results from database 
    }
    catch(Exception exception)
    {
        throw;
    }
}  

Crée une observable et démarre une méthode de manière asynchrone. SelectMany aplatit la collection et l'abonnement est déclenché tous les 200 éléments via Buffer .

int bufferSize = 200;

Observable
    .Start(() => GetData())
    .SelectMany(s => s)
    .Buffer(bufferSize)
    .ObserveOn(SynchronizationContext.Current)
    .Subscribe(items => 
    {
        Console.WriteLine("Loaded {0} elements", items.Count);
        
        // do something on the UI like incrementing a ProgressBar
    },
    () => Console.WriteLine("Completed loading"));


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow