如何将IReadonlyReactiveList绑定到ReactiveCollectionView

时间:2018-04-25 05:30:01

标签: xamarin.ios reactiveui

我有一个视图模型,它从休息服务中检索数据列表,并存储在属性中。

private readonly ObservableAsPropertyHelper<IReadOnlyReactiveList<Customer>> _searchResultCustomer;
public IReadOnlyReactiveList<Customer> SearchResultCustomer => _searchResultCustomer.Value;

我正在尝试在此SearchResultCustomer之间对ReactiveCollectionViewthis.OneWayBind(ViewModel, vm => vm.SearchResultCustomer, v => v.cvResult.DataSource);进行绑定。

毫不奇怪,它不起作用,v.cvResult.DataSource预期的类型为IUICollectionViewDataSource

我如何解决这个问题,是否有适用于Xamarin.IOS的示例?谢谢:))

1 个答案:

答案 0 :(得分:0)

绑定到UI集合(例如UITableView或UICollectionView)的工作方式略有不同。方便的是,您甚至不需要创建自己的UICollectionViewSource。只需使用initialize方法创建一个自定义单元格并绑定如下:

ViewModel.WhenAnyValue(vm => vm.SearchResultCustomer).BindTo<Customer, CustomerCell>(collectionView, cell => cell.Initialize());

感谢保罗·赖歇尔在this thread回答了类似的问题,除了UITableView。

我分叉了他的示例项目,并为UICollectionView添加了一个工作示例。我使用IReactiveList而不是IReadOnlyReactiveList,但您应该能够修改它以满足您的需求。这是source。希望它有所帮助。