} = new List <UIElement>();                                                               // holds the collection of text elements


        public void DrawGrid(int firstHour, int hours)
        {
            foreach (var line in GridLines)
            {
                GraphCanvas.Children.Remove(line);                 // TODO Try block?
            }
            GridLines.Clear();
            foreach (var location in LocationUiElements)
            {
                GraphCanvas.Children.Remove(location);                 // TODO try block?
            }
            LocationUiElements.Clear();

            double margin = 0;             // TODO remove this?
            double width  = GraphCanvas.Width - 2 * margin;
            double height = GraphCanvas.Height - 2 * margin;

            // vertical hours per 15 minutes, so divide by 96
            // alt is per hour a grid line
            double gridHeight = height / hours;
            double gridWidth  = width / LocationList.Count;

            // Horizontal
            for (int i = 0; i < hours + 1; i++)
            {
                var line = GetLine(margin);
                line.X1 = 0;
                line.X2 = width;
                line.Y1 = i * gridHeight;
                line.Y2 = line.Y1;
                var hour = $"{i+firstHour:D2}:00";
                GridLines.Add(line);
                UIElement item = Text(line.X1 - 28, line.Y1 - 5, hour, GraphCanvasSettings.TextColor);
                LocationUiElements.Add(item);
                GraphCanvas.Children.Add(item);
                GraphCanvas.Children.Add(line);
            }

            int j = 0;

            foreach (var item in LocationList)
            {
                var line = GetLine(margin);
                line.X1 = j * gridWidth;
                line.X2 = line.X1;
                line.Y1 = 0;
                line.Y2 = height;
                GridLines.Add(line);
                UIElement locationUI = Text(line.X1, line.Y1 - 15, item, GraphCanvasSettings.TextColor);
                GraphCanvas.Children.Add(locationUI);
                GraphCanvas.Children.Add(line);
                j++;
            }
        }