Как связать IReadonlyReactiveList с ReactiveCollectionView - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть модель представления, которая извлекает список данных из службы отдыха и хранит в свойстве.

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?Спасибо:)

1 Ответ

0 голосов
/ 25 апреля 2018

Привязка к коллекции UI, такой как UITableView или UICollectionView, работает немного по-другому. Для удобства вам даже не нужно создавать свой собственный UICollectionViewSource. Просто создайте пользовательскую ячейку с методом инициализации и привяжите ее так:

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

Благодарим Пола Рейхельта на этой теме , который ответил на аналогичный вопрос, за исключением UITableView.

Я раздвоил его пример проекта и добавил рабочий пример для UICollectionView. Я использую IReactiveList вместо IReadOnlyReactiveList, но вы должны иметь возможность изменить его в соответствии со своими потребностями. Вот источник . Надеюсь, это поможет.

...