Shane Neuvilleからの反応として、私は私の質問を変えています。でも、はい。それは私が最初にそれと思ったより複雑かもしれません。ReactiveCommandはお互いに2つのコマンドに依存します
私はReactiveList<ServiceEntryModel> Services;
を持っています。これは、ビューが現れたときに表示されます。リストのすべてのエントリで、私はServices.ItemsAdded.Subscribe()
と呼ばれる関数を使用しました。ここで、RxCellには、リスト全体の最後に特定の順序で並べ替えるべきデータが入っています。現時点では、私は2つの別々のReactiveCommandsを持っています。
1.ReactiveCommand<Unit, List<ServiceEntryModel>> RefreshServices;
2.ReactiveCommand<Unit, List<ServiceEntryModel>> OrderByCommand;
2番目のコマンドは、リスト全体がServices.ItemsAdded.Subscribeメソッドから取り込まれるときに呼び出す必要があります。すべてのエントリが完了すると、どのように確認/知ることができますか?
私はカウンターとObservablePropertyHelpersで何か試しましたが、これまでのところ運がありません。
はここServices.ItemsAddedが呼ばれるように継続されますので、
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 ?
});
コメントしている部分が無限ループで、関連するべきである私のViewModel一部です。
ユーザーはプルダウンして最初のコマンドを再度呼び出すことができます。秒はリスト全体を再び注文するべきです。
私はまだそれほどフォローしていません。あなたが達成しようとしているものの小さなサンプルを作成することは可能でしょうか?このためには、どのようにすべてのエントリが完了したかを確認する/知ることができますか?私はあなたに同じことを尋ねるでしょう。それが行われた指標は何ですか?データが完了したことを知っているところにデータが到達する状態は何か。あなたはカウンターを実装したので、アイテム数を知っていますか?あなたがしたいことがすべてリストを並べ替えるなら、https://docs.reactiveui.net/en/user-guide/lists/derived-lists.htmlがより良い解決策になるかもしれません。 –