コード例 #1
0
        private List <DrinkDisplayRow> GetDrinkDisplayRows(List <Drink> drinksForDisplay)
        {
            List <DrinkDisplayRow> rows       = new List <DrinkDisplayRow>();
            DrinkDisplayRow        workingRow = new DrinkDisplayRow();
            int rowCount      = 0;
            int lastItemIndex = drinksForDisplay.Count - 1;

            for (int i = 0; i < drinksForDisplay.Count; i++)
            {
                Color circleColor = GetCircleColor(drinksForDisplay[i].DrinkType);
                int   column      = i % 3;
                if (column == 0)
                {
                    workingRow = new DrinkDisplayRow();
                    workingRow.RowDrinks[0]    = drinksForDisplay[i].GetClone();
                    workingRow.CircleColors[0] = circleColor;
                    if (i == lastItemIndex)
                    {
                        workingRow.RowDrinks[1]         = new Drink();
                        workingRow.CircleColors[1]      = Color.Black;
                        workingRow.HideButtons[1]       = true;
                        workingRow.RowDrinks[2]         = new Drink();
                        workingRow.CircleColors[2]      = Color.Black;
                        workingRow.HideButtons[2]       = true;
                        workingRow.DrinkDisplayRowIndex = rowCount;
                        rows.Add(workingRow);
                        break;
                    }
                }
                else if (column == 1)
                {
                    workingRow.RowDrinks[1]    = drinksForDisplay[i].GetClone();
                    workingRow.CircleColors[1] = circleColor;
                    if (i == lastItemIndex)
                    {
                        workingRow.DrinkDisplayRowIndex = rowCount;
                        workingRow.RowDrinks[2]         = new Drink();
                        workingRow.CircleColors[2]      = Color.Black;
                        workingRow.HideButtons[2]       = true;
                        rows.Add(workingRow);
                        break;
                    }
                }
                else if (column == 2)
                {
                    workingRow.RowDrinks[2]         = drinksForDisplay[i].GetClone();
                    workingRow.CircleColors[2]      = circleColor;
                    workingRow.DrinkDisplayRowIndex = rowCount;
                    rows.Add(workingRow);
                    rowCount++;
                }
            }
            return(rows);
        }
コード例 #2
0
        async private void HandleScrollToItem()
        {
            //Wait so that list renders.
            await Task.Delay(500);

            if (thisDrinksPageModel.DraftBeerSelected)
            {
                List <DrinksGroup>     groups       = thisDrinksPageModel.DrinksGroups.ToList();
                List <DrinkDisplayRow> displayItems = new List <DrinkDisplayRow>();
                foreach (var group in groups)
                {
                    displayItems.AddRange(group);
                }
                DrinkDisplayRow scrollToThisItem = displayItems[thisDrinksPageModel.DrinkForEditIndex];
                DrinksDraftsListView.ScrollTo(scrollToThisItem, ScrollToPosition.MakeVisible, false);
            }
            else
            {
                DrinkDisplayRow scrollToThisItem = thisDrinksPageModel.DrinkDisplayItems[thisDrinksPageModel.DrinkForEditIndex];
                DrinksListView.ScrollTo(scrollToThisItem, ScrollToPosition.MakeVisible, false);
            }
        }