internal void _sort <T>(getDessertField <T> getField, bool isAscending) where T : IComparable { this._desserts.Sort((Dessert a, Dessert b) => { if (!isAscending) { Dessert c = a; a = b; b = c; } T aValue = getField(a); T bValue = getField(b); return(aValue.CompareTo(bValue)); }); this.notifyListeners(); }
public override DataRow getRow(int index) { D.assert(index >= 0); if (index >= this._desserts.Count) { return(null); } Dessert dessert = this._desserts[index]; return(DataRow.byIndex( index: index, selected: dessert.selected, onSelectChanged: (bool value) => { if (dessert.selected != value) { this._selectedCount += value ? 1 : -1; D.assert(this._selectedCount >= 0); dessert.selected = value; this.notifyListeners(); } }, cells: new List <DataCell> { new DataCell(new Text(dessert.name)), new DataCell(new Text($"{dessert.calories}")), new DataCell(new Text($"{dessert.fat:F1}")), new DataCell(new Text($"{dessert.carbs}")), new DataCell(new Text($"{dessert.protein:F1}")), new DataCell(new Text($"{dessert.sodium}")), new DataCell(new Text($"{dessert.calcium}%")), new DataCell(new Text($"{dessert.iron}%")), } )); }