Таймер не работает для автомата c CarouselView - PullRequest
0 голосов
/ 29 марта 2020

Я делаю автоматический c CarouselView (слайдер), чтобы скользить между изображениями каждые x секунд. Я знаю, что есть много примеров, но ни один из них не помог мне заставить меня работать. Итак, вот сделка:

Это моя страница xaml:

<CarouselView x:Name="carou_slideshow" Grid.Row="1" IsVisible="False">
       <CarouselView.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding}"/>
            </DataTemplate>
       </CarouselView.ItemTemplate>
</CarouselView>

Всякий раз, когда пользователь нажимает кнопку, чтобы начать слайд-шоу, он показывает мою карусель со своими изображениями без каких-либо проблем, но текущее изображение не меняется через x секунд. Вот как я это сделал:

private void btn_slideShow_Clicked(object sender, EventArgs e)
{
   stk_header.IsVisible = false;
   stk_options.IsVisible = false;
   grid_images.IsVisible = false;
   carou_slideshow.IsVisible = true;

   carou_slideshow.ItemsSource = sources;
   Device.StartTimer(TimeSpan.FromSeconds(5), (Func<bool>)(() =>
   {
       carou_slideshow.Position = (carou_slideshow.Position + 1) % sources.Count;
       return true;
   })
   );
}

Есть идеи почему?

РЕДАКТИРОВАТЬ: я понял, что в моем проекте у меня уже был таймер в том же классе. После удаления и сохранения метода в кнопке мое приложение вылетает без ошибок.

EDIT2: Кто-то дал мне решение по этому посту и удалил его после. Я попробовал это, и это не работает для меня .. Как я был уверен, что это будет, я попытался увеличить что-то еще, и таймер работает отлично, но изображение не смахивает. Кроме того, он может случайно закрыть приложение, а также без каких-либо проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...