using System; using System.Collections.Generic; using System.Linq; using Xamarin.Forms; namespace comal.timesheets { public class ExpanderViewItem { public String Description { get; set; } public bool Selected { get; set; } } public class ExpanderViewGroup { public String Description { get; set; } public ImageSource Image { get; set; } private List _items = new List(); public ExpanderViewItem[] Items => _items.ToArray(); public ExpanderViewGroup AddItem(ExpanderViewItem item) { _items.Add(item); return this; } public void DeleteItem(ExpanderViewItem item) { if (_items.Contains(item)) _items.Remove(item); } public void Clear() => _items.Clear(); } public class ExpanderViewData { private List _groups = new List(); public ExpanderViewGroup[] Groups => _groups.ToArray(); public ExpanderViewGroup AddGroup(ExpanderViewGroup group) { _groups.Add(group); return group; } public void DeleteGroup(ExpanderViewGroup group) { if (_groups.Contains(group)) _groups.Remove(group); } public void Clear() => _groups.Clear(); public ExpanderViewItem[] SelectedItems { get { List results = new List(); foreach (var group in Groups) results.AddRange(group.Items.Where(x => x.Selected)); return results.ToArray(); } } } }