Example #1
0
        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;
                }
            });
        }