作为来自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可能是更好的解决方案 –