Hallo liebes Forum, ich habe folgendes Problem bzw. Frage.
Ich habe zu Übungszwecken (um mit dem ViewModel Konzept und dem UI Design in WPF sicherer zu werden) ein kleines Programm geschrieben.
In eine Textbox gibt man einen Liednamen ein und das Programm sucht im Internet nach passenden Liedern und zeigt dir in einer Listbox mit DataTemplate die gefundenen Lieder an (max. 5).
Allerdings braucht diese Abfrage im Internet ca. 1 Sekunde, was ja nicht schlimm ist, das kann man ja nicht schneller machen. Da die ObservableCollection, in der die gefundenen Lieder gespeichert sind, nach jedem eingegebenen Zeichen in der Textbox (UpdateTrigger: OnPropertyChanged) aktuallisiert wird, "hängt" sich das Programm in der Zeit auf, bis die Sucheinträge angezeigt werden.
Ich stelle es mir aber so vor, dass in der Zeit wo die Suchergebnisse laden, man das Programm normal weiternutzen kann, sprich ein weiteres Zeichen in die Textbox eingeben, etc, und in der Listbox am besten irgend so ein Kreis der sich dreht und daneben ´"Bitte warten" steht.
Ich glaube, da muss man mit
Über einen Ansatz wäre ich sehr dankbar.
Viele Grüße
Florian
Ich habe zu Übungszwecken (um mit dem ViewModel Konzept und dem UI Design in WPF sicherer zu werden) ein kleines Programm geschrieben.
In eine Textbox gibt man einen Liednamen ein und das Programm sucht im Internet nach passenden Liedern und zeigt dir in einer Listbox mit DataTemplate die gefundenen Lieder an (max. 5).
Allerdings braucht diese Abfrage im Internet ca. 1 Sekunde, was ja nicht schlimm ist, das kann man ja nicht schneller machen. Da die ObservableCollection, in der die gefundenen Lieder gespeichert sind, nach jedem eingegebenen Zeichen in der Textbox (UpdateTrigger: OnPropertyChanged) aktuallisiert wird, "hängt" sich das Programm in der Zeit auf, bis die Sucheinträge angezeigt werden.
Ich stelle es mir aber so vor, dass in der Zeit wo die Suchergebnisse laden, man das Programm normal weiternutzen kann, sprich ein weiteres Zeichen in die Textbox eingeben, etc, und in der Listbox am besten irgend so ein Kreis der sich dreht und daneben ´"Bitte warten" steht.
Ich glaube, da muss man mit
async
und await
arbeiten, aber leider habe ich keinen Ansatz, wie das geht.Über einen Ansatz wäre ich sehr dankbar.
Viele Grüße
Florian
----
WebApps mit C#: Blazor
WebApps mit C#: Blazor