Suche…


Beobachten des TextChanged-Ereignisses in einer TextBox

Ein Observable wird aus dem TextChanged-Ereignis der TextBox erstellt. Außerdem wird eine Eingabe nur ausgewählt, wenn sie sich von der letzten Eingabe unterscheidet und wenn innerhalb von 0,5 Sekunden keine Eingabe erfolgt. Die Ausgabe in diesem Beispiel wird an die Konsole gesendet.

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

Streaming von Daten aus der Datenbank mit Observable

Angenommen, eine Methode gibt IEnumerable<T> , z

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

Erzeugt ein Observable und startet asynchron eine Methode. SelectMany die Sammlung und das Abonnement wird alle 200 Elemente über Buffer SelectMany .

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow