作爲來自Shane Neuville的反應,我改變了我的問題。但是,是的。這可能比我想象的要複雜得多。ReactiveCommand根據兩個命令彼此
我有一個ReactiveList<ServiceEntryModel> Services;
當視圖出現時會被填充。對於列表中的每個條目,我都使用了名爲Services.ItemsAdded.Subscribe()
的函數,其中RxCell將填充整個列表末尾應以特定方式排序的數據。截至目前,我有兩個單獨的ReactiveCommands。
1.ReactiveCommand<Unit, List<ServiceEntryModel>> RefreshServices;
2.ReactiveCommand<Unit, List<ServiceEntryModel>> OrderByCommand;
從Services.ItemsAdded.Subscribe方法填充整個列表時應該調用第二個命令。我怎樣才能檢查/知道每個項目完成後?
我已經嘗試了一些與計數器和ObservablePropertyHelpers,但沒有任何運氣,迄今。
下面是應該是相關
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 ?
});
被註釋掉的部分是一個無限循環,因爲Services.ItemsAdded將繼續被稱爲我的視圖模型的一部分。
用戶可以拉動刷新,第一個命令將再次被調用,所以正確的時候完成。秒數應該重新排列整個列表。
我還沒有完全追隨。是否有可能創建一個你想要完成的小樣本?對於這個「我怎樣才能檢查/知道每一個項目完成?」我會問你同樣的事情。它的指標是什麼?數據到達你知道它完成的地方。你實施了一個櫃檯,所以你知道物品的數量?如果你只想對列表進行排序,那麼https://docs.reactiveui.net/en/user-guide/lists/derived-lists.html可能是更好的解決方案 –