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); }
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); } }