Zoeken…


TextChanged-gebeurtenis observeren op een TextBox

Een waarneembare wordt gemaakt van de TextChanged-gebeurtenis van de TextBox. Ook wordt elke invoer alleen geselecteerd als deze verschilt van de laatste invoer en als er binnen 0,5 seconden geen invoer was. De uitvoer in dit voorbeeld wordt naar de console verzonden.

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

Gegevens uit database streamen met Observable

Stel dat u een methode heeft die IEnumerable<T> retourneert, bijvoorbeeld

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

Maakt een Observable en start een methode asynchroon. SelectMany de collectie vlakker en het abonnement wordt om de 200 elementen Buffer 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow