Als Reaktion von Shane Neuville ändere ich meine Frage. Aber ja. Es mag komplizierter sein, als ich es zuerst dachte.ReactiveCommand abhängig zwei Befehle aufeinander
Ich habe eine ReactiveList<ServiceEntryModel> Services;
, die ausgefüllt wird, wenn die Ansicht angezeigt wurde. Mit jedem Eintrag in der Liste habe ich die Funktion Services.ItemsAdded.Subscribe()
verwendet, in der die RxCell mit Daten gefüllt wird, die am Ende der gesamten Liste auf eine bestimmte Weise geordnet werden sollen. Ab sofort habe ich zwei separate ReactiveCommands.
1.ReactiveCommand<Unit, List<ServiceEntryModel>> RefreshServices;
2.ReactiveCommand<Unit, List<ServiceEntryModel>> OrderByCommand;
Der zweite Befehl soll, wenn die ganze Liste aufgerufen werden, aus dem Services.ItemsAdded.Subscribe Verfahren aufgefüllt wird. Wie kann ich überprüfen, wann alle Eingaben gemacht wurden?
Ich habe etwas mit Zählern und ObservablePropertyHelper versucht, aber bisher ohne Glück.
Hier ist mein Viewmodel Teil,
Services.ItemsAdded.Subscribe(async entryItem =>
{
ServiceEntityStatusDto serviceEntityStatus = await GetServiceEntryStatus(entryItem);
if (serviceEntityStatus != null)
{
entryItem.AvailabilityStatus = serviceEntityStatus.AvailabilityStatus;
entryItem.PerformanceStatus = serviceEntityStatus.PerformanceStatus;
}
counterServices++;
//await OrderServices.Execute(); //TODO infinite loop ?
});
Der Teil kommentiert wird relevant sein soll, ist eine Endlosschleife, weil die Services.ItemsAdded aufgerufen werden wird fortgesetzt.
Der Benutzer kann zum Aktualisieren ziehen und der erste Befehl wird erneut aufgerufen, also richtig, wenn das erledigt ist. Die Sekunden sollten die gesamte Liste neu ordnen.
Ich folge immer noch nicht ganz. Wäre es möglich, eine kleine Auswahl dessen zu erstellen, was Sie erreichen möchten? Dazu "Wie kann ich prüfen/wissen wann jeder Eintrag fertig ist?" Ich würde dich das Gleiche fragen. Was sind die Indikatoren, die es getan hat? In welchem Zustand gelangen die Daten dorthin, wo sie bekannt sind? Sie haben einen Zähler implementiert, kennen Sie also die Anzahl der Artikel? Wenn Sie nur die Liste sortieren möchten, dann ist https://docs.reactiveui.net/en/user-guide/lists/derived-lists.html eine bessere Lösung. –