我有一个视图模型,它从休息服务中检索数据列表,并存储在属性中。
private readonly ObservableAsPropertyHelper<IReadOnlyReactiveList<Customer>> _searchResultCustomer;
public IReadOnlyReactiveList<Customer> SearchResultCustomer => _searchResultCustomer.Value;
我正在尝试在此SearchResultCustomer
之间对ReactiveCollectionView
到this.OneWayBind(ViewModel, vm => vm.SearchResultCustomer, v => v.cvResult.DataSource);
进行绑定。
毫不奇怪,它不起作用,v.cvResult.DataSource
预期的类型为IUICollectionViewDataSource
。
我如何解决这个问题,是否有适用于Xamarin.IOS的示例?谢谢:))
答案 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。希望它有所帮助。