public LightsPage() { this.InitializeComponent(); lifxManager = new LifxManager(); items = new List <LifxBulb>(); bulbs = new ObservableCollection <LifxBulb>(); Device.BeginInvokeOnMainThread(async() => { items = await lifxManager.listBulbs(); ListView lstView = new ListView(); lstView.RowHeight = 60; this.Title = "Lights"; lstView.ItemTemplate = new DataTemplate(typeof(CustomLightsCell)); lstView.GroupHeaderTemplate = new DataTemplate(typeof(CustomLightsGroupedCell)); if (items.Count > 0) { var grouped = new ObservableCollection <LifxStairs>(); var rdc = new LifxStairs() { Title = "Rez de chaussée", ShortName = "RDC" }; var etage = new LifxStairs() { Title = "1er Etage", ShortName = "1Et" }; foreach (var item in items) { if (item.Group.name.Equals("RDC")) { rdc.Add(item); } else if (item.Group.name.Equals("Etage")) { etage.Add(item); } } ; grouped.Add(rdc); grouped.Add(etage); lstView.ItemsSource = grouped; lstView.IsGroupingEnabled = true; lstView.GroupDisplayBinding = new Binding("Title"); lstView.IsPullToRefreshEnabled = true; lstView.ItemSelected += OnItemSelected; lstView.IsPullToRefreshEnabled = true; lstView.Refreshing += OnItemRefresh; Content = lstView; } }); }