예제 #1
0
 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");
        }
예제 #3
0
        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}";
        }