Löst eine Aktion aus, die nach X Millisekunden gestartet wird

8

Ich entwickle eine mobile Xamarin Forms App, die eine Seite mit einem SearchBar-, einem ListView- und einem Map-Steuerelement enthält. Die Listenansicht enthält eine Liste von Adressen, die als Pins auf der Karte wiedergegeben werden.

Wenn der Benutzer die Suchleiste eingibt, wird die ListView automatisch aktualisiert (durch ViewModel-Bindung). Die ViewModel-Methode, die die Datenquelle für die Liste filtert, sieht ungefähr so ​​aus ...

%Vor%

Ich möchte die Map aktualisieren, da die ListView gefiltert ist, aber nicht bei JEDEM Tastendruck, da dies mehrmals pro Sekunde passieren könnte. Im Wesentlichen möchte ich eine "rollende Pause" in jedem FilterList-Ereignis, bevor die Map aktualisiert wird. In Pseudocode ...

%Vor%

Dies ist mit der Klasse Stoppuhr möglich, die in Bibliotheken für portable Klassen verfügbar ist, aber ich vermute, dass es eine sauberere / bessere Methode gibt, dies mit Aufgaben zu erreichen.

Kann jemand einen PCL-kompatiblen Weg vorschlagen, dies zu tun?

    
bosco 07.08.2014, 07:25
quelle

4 Antworten

10

können Sie versuchen:

%Vor%     
Rui Marinho 07.08.2014, 15:07
quelle
7

Wie Sie bereits gesagt haben, kann dies mit Tasks und asynchronen Programmen sehr sauber durchgeführt werden.

Sie sollten darüber lesen: Ссылка

Hier ist ein Beispiel:

%Vor%     
dan 07.08.2014 17:02
quelle
2

Hier ist was ich getan habe und es funktioniert in meinen Xamarin Form Apps.

%Vor%

Ich habe diese "Such" -Eigenschaft an mein Eingabefeld gebunden. Wenn der Benutzer etwas filtert, wartet der Code für 1 Sekunde und vergleicht dann das neue Textfeld mit dem Feld, das es vor 1 Sekunde zuvor hatte. Angenommen, die Zeichenfolge ist gleich, bedeutet dies, dass der Benutzer die Eingabe des Textes gestoppt hat und der Code jetzt zum Filtern ausgelöst werden kann.

    
HarshitGindra 11.06.2017 02:10
quelle
0

Arbeiten in der neuesten Xamarin-Version.

Eine weitere großartige Methode, um auf einen Klick zu klicken, ist

%Vor%

async und await Schlüssel sind wichtig. Angenommen, Sie arbeiten an einer Multithread-Umgebung.

    
Zumry Mohamed 14.03.2018 07:05
quelle