private void Carousel_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { item = (PetProfileViewModel)e.SelectedItem; //item.BackgroundColor=Color.DarkBlue; //SfBadgeView badgeView = (SfBadgeView) item.ItemContent; //SfAvatarView avatar = (SfAvatarView)badgeView.Content; }
private void Carousel_SelectionChanged(object sender, Syncfusion.SfCarousel.XForms.SelectionChangedEventArgs e) { int count = (sender as SfCarousel).SelectedIndex + 1; DisplayAlert("SelectionChanged", "Carousel item:" + count + " has Selected", "Ok"); }
async void OnSelectionChanged(object sender, Syncfusion.SfCarousel.XForms.SelectionChangedEventArgs e) { try { busyIndicator.IsBusy = true; if (e.SelectedIndex > last_index) { if ((e.SelectedIndex + first_load) == (last_load - 4) && last_load < _files.Count) { var index = e.SelectedIndex; var start = last_load + 1; m_carousel.BindingContext = null; for (int idx = start; idx < (_files.Count > (start + _load_block) ? (start + _load_block) : _files.Count); idx++) { if (idx > last_load) { last_load = idx; } var item = new CarouselModel(_files[idx].Path); carouselList.ImageCollection.Add(item); carouselList.ImageCollection.RemoveAt(0); first_load++; index--; } m_carousel.BindingContext = carouselList; last_index = index; if (index != e.SelectedIndex) { m_carousel.SelectedIndex = index; } } } else if (e.SelectedIndex < last_index) { if ((e.SelectedIndex + first_load) == (first_load + 4)) { var index = e.SelectedIndex; var start = first_load - 1; var xxx = (start - _load_block) > -1 ? start - _load_block : -1; m_carousel.BindingContext = null; for (int idx = start; idx > xxx; idx--) { if (idx < first_load) { first_load = idx; } var item = new CarouselModel(_files[idx].Path); carouselList.ImageCollection.Insert(0, item); carouselList.ImageCollection.RemoveAt(carouselList.ImageCollection.Count - 1); last_load--; index++; } m_carousel.BindingContext = carouselList; last_index = index; if (index != e.SelectedIndex) { m_carousel.SelectedIndex = index; } } } else { last_index = e.SelectedIndex; } } catch (OutOfMemoryException) { await DisplayAlert("Errore!", "Memoria non sufficiente per eseguire l'operazione", "OK"); } busyIndicator.IsBusy = false; m_desc.Text = $"Immagini caricate : Memory {first_load}-{last_load} {e.SelectedIndex}+{first_load} == {e.SelectedIndex + first_load} == {last_load - 4}/{_files.Count} - Corrente : {e.SelectedIndex}"; }