如何解决使用动态数据将IObservable转换为SourceCache
我是ReactiveUI的新手,正在尝试将其添加到Xamarin Forms应用程序中。我们有一个返回IObservable的服务方法。
IObservable<List<DiningArea>> diningAreaObservable = _tableService.GetAllDiningAreas();
这有效,并且以前我们已经订阅了该方法,并将结果映射到ObservableCollection中。我想替换它,然后开始使用动态数据。因此,我使用XAML集合视图的绑定源为DiningAreas设置了一些全局变量。
private SourceCache<DiningArea,int> _diningAreas = new SourceCache<DiningArea,int>(x => x.Id);
private ReadOnlyObservableCollection<DiningArea> _diningAreaCollection;
public ReadOnlyObservableCollection<DiningArea> DiningAreas => _diningAreaCollection;
现在在我的ViewModel中,我调用该服务,获取一个可观察的对象,但是如何将可观察的对象添加到SourceCache中。我可以看到如何将其转换为IChangeSet,但我希望它与_diningAreas分开。
IObservable<List<DiningArea>> diningAreaObservable = _tableService.GetAllDiningAreas();
IObservable<IChangeSet<DiningArea,int>> diningAreaChangeSet = diningAreaObservable.ToObservableChangeSet(t => t.Id);
_diningAreas.AddOrUpdate(new DiningArea { Id = 0,Name = "All",Position = 0 });
var diningAreaDisposable = _diningAreas.Connect()
.Sort(SortExpressionComparer<DiningArea>.Ascending(z => z.Position))
.Bind(out _diningAreaCollection)
.Subscribe();
我是否正确理解了这一点,还是在做倒退的事情?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。