问题描述
我是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 (将#修改为@)