Xamarin Forms CarouselView: Программная настройка CurrentItem не работает

#xamarin.forms #xamarin.forms.carouselview

Вопрос:

Я использую Xamarin Community Toolkit CarouselView, но у меня возникли проблемы с программной настройкой выбранной страницы карусели. Если я установлю CurrentItem для элемента под номером два в источнике элементов, он обновит представление просто отлично, но если я установлю CurrentItem для элемента, который находится в 3 или более местах в источнике элементов, он больше не будет обновляться правильно. Я видел различные темы о CarouselView и других ошибках, но ни одна из них не похожа на проблему, с которой я сталкиваюсь.

Надеюсь, кто-нибудь сможет помочь мне с обходным путем.

Комментарии:

1. Я попытался использовать «CurrentItem» и «Положение» для установки элемента ItemSource. Результаты оказались успешными. Согласно вашему описанию, наиболее вероятная ошибка заключается в том, что длина данных в вашем массиве слишком мала. Итак, какой метод вы использовали и что пошло не так, когда число было больше трех?

2. @llill В то время длина коллекции составляла более 15. Я попытался изменить «CurrentItem» и «Положение», вызвав установку значений непосредственно в CarouselView из codebehind, а также с помощью привязки данных. Я также использовал метод «прокрутки», но тот же результат

3. Не могли бы вы поделиться с нами базовым , воспроизводимым проектом для тестирования ?

4. Пожалуйста, не просто пишите описание того, что вы сделали. Почтовый индекс , который объявляет данные и выполняет эти действия. В противном случае, любой, кто пытается помочь, просто гадает. Также «больше не обновляется правильно» — что происходит? ничего? Если у вас есть кнопка, которая добавляет 1 к текущему элементу, и вы нажмете эту кнопку несколько раз, сможете ли вы добраться до элемента?

5. Где в коде вы установили CurrentItem ? Через отладчик или добавить в код и запустить снова? В constructor или OnAppearing ? В методе нажатия кнопки? (Самый безопасный тест, потому что тогда все было инициализировано. Также гарантирует, что вы находитесь в потоке пользовательского интерфейса.)