У меня проблемы с моим CollectionView
, который показывает дубликаты объектов каждый раз, когда я отображаю страницу, то есть в первый раз у меня будет 1 объект (что нормально), но если я перейду и вернусь на эту страницу, это будет продублируйте один и тот же объект, и я получу его дважды, затем трижды ..et c ...
Ниже приведен код в constructor
ViewModel моей страницы:
Cache
.AutoRefresh(x => x.Code)
.ObserveOn(RxApp.MainThreadScheduler)
.Bind(out _list)
.DisposeMany();
_list
является ReadOnlyObservableCollection<AddressViewModel>
Cache
является IObservable<IchangeSet<AddressModel, string>>
полученным из GetAllObjects
из Akavache
кэша.
_blobCache
.GetAllObjects<AddressModel>()
.ToObservableChangeSet(t => t.Code)
.AsObservableCache()
.Connect();
Привязка к моему CollectionView
is
this.OneWayBind(ViewModel, vm => vm.List, v => v.addressList.ItemsSource).DisposeWith(disposables);
Спасибо за любую помощь или подсказку
ОБНОВЛЕНИЕ
Дублирование происходит ТОЛЬКО при навигации между вкладками, если я pu sh новая страница и go назад я снова нахожу 1 объект, который является предполагаемым поведением.
Вот код, устанавливающий BindingContext страницы
В коде позади TabbedPage
public partial class MainTabbedPage : ReactiveTabbedPage<MainViewModel>
{
public MainTabbedPage()
{
InitializeComponent();
this.WhenActivated(
disposables =>
{
this
.OneWayBind(this.ViewModel, x => x.AddressVm, x => x.addressView.ViewModel)
.DisposeWith(disposables);
//other tabs...
});
}
}
В MainViewModel
public AddressViewModel AddressVm => new AddressViewModel(HostScreen);
public MainViewModel(IScreen hostScreen) : base(hostScreen)
{
}