async void hscroll1And2_ItemSelected(object sender, HScrollEventArgs e)
        {
            HorizontalScrollLayout layout = (HorizontalScrollLayout)sender;
            ContentView            view   = e.Template;

            if (layout.Id.ToString() == HScroll1.Id.ToString())
            {
                HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data;
                if (record.shortSelectionTime)
                {
                    await Task.Delay(250);

                    // Unselect item by record
                    layout.UnselectItem(record);
                    // Alternate possibility: unselect the view itself
                    //layout.UnselectItem(view);
                }
            }
            else
            {
                HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data;
                if (record.resetSelection)
                {
                    await Task.Delay(250);

                    foreach (object selectedRecord in layout.SelectedItems)
                    {
                        if (layout.ItemIsSelected(selectedRecord))
                        {
                            layout.UnselectItem(selectedRecord);
                        }
                    }
                }
            }
        }
        async void hscroll1And2_ItemSelected(object sender, HScrollEventArgs e)
        {
            HorizontalScrollLayout layout = (HorizontalScrollLayout)sender;

            if (layout.Id.ToString() == this.hscroll1.Id.ToString())
            {
                HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data;
                if (record.shortSelectionTime)
                {
                    await Task.Delay(250);

                    layout.UnselectItem(record);
                }
            }

            if (layout.Id.ToString() == this.hscroll2.Id.ToString())
            {
                HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data;
                if (record.resetSelection)
                {
                    await Task.Delay(250);

                    foreach (object selectedRecord in layout.SelectedItems)
                    {
                        layout.UnselectItem(selectedRecord);
                    }
                }
            }
        }
        void hscroll1And2_ItemUnSelected(object sender, HScrollEventArgs e)
        {
            HorizontalScrollLayout layout = (HorizontalScrollLayout)sender;

            if (layout.Id.ToString() == HScroll1.Id.ToString())
            {
                HScrollViewCell1Data record = (HScrollViewCell1Data)e.Data;
            }
            if (layout.Id.ToString() == HScroll2.Id.ToString())
            {
                HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data;
            }
        }
        async void hscroll3_ItemSelected(object sender, HScrollEventArgs e)
        {
            HorizontalScrollLayout layout = (HorizontalScrollLayout)sender;
            HScrollViewCell2Data   record = (HScrollViewCell2Data)e.Data;
            await Task.Delay(250);

            layout.RemoveItem(record);
            await Task.Delay(100);

            if (layout.Id.ToString() == this.hscroll3.Id.ToString())
            {
                this.hscroll4.AddItem(record);
                this.hscroll4.SelectItem(record);
            }
            else
            {
                this.hscroll3.AddItem(record);
                this.hscroll3.SelectItem(record);
            }
        }
 void hscroll3_ItemUnSelected(object sender, HScrollEventArgs e)
 {
     HScrollViewCell2Data record = (HScrollViewCell2Data)e.Data;
 }