public void DeletePeriod(CIPeriod i, bool added)
 {
     if (true)
     {
         _addedPeriods.Remove(_addedPeriods.First(_ => _.ElementAt(0).Text == i.Index + ""));
         ReloadPeriodsView(false);
     }
 }
        private void AddPeriod(CIPeriod i, Grid mainGrid, bool addToList)
        {
            mainGrid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(40)
            });
            Image img = new Image()
            {
                Source        = "close_circle.png",
                HeightRequest = BlankWidth - 10,
                WidthRequest  = BlankWidth - 10,
            };
            var t = new TapGestureRecognizer();

            t.Tapped += (s, e) =>
            {
                DeletePeriod(i, addToList);
            };
            img.GestureRecognizers.Add(t);
            mainGrid.Children.Add(img, 0, rowCount);
            Entry indexEntry = new Entry()
            {
                Text     = i.Index + "",
                FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
                Keyboard = Keyboard.Numeric
            };

            mainGrid.Children.Add(indexEntry, 1, rowCount);
            Entry nameEntry = new Entry()
            {
                Text     = i.Name + "",
                FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
            };

            mainGrid.Children.Add(nameEntry, 2, rowCount);
            Entry intervalEntry = new Entry()
            {
                Text     = Math.Round(i.Interval.TotalMinutes, 2) + "",
                FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label)),
                Keyboard = Keyboard.Numeric
            };

            indexEntry.TextChanged += (s, e) =>
            {
                var          entry           = (Entry)s;
                List <Entry> periodToCascade = null;
                try
                {
                    periodToCascade = _addedPeriods.First(_ => _.ElementAt(0).Text == entry.Text && _.ElementAt(1).Text != nameEntry.Text);
                }
                catch { }
                if (entry.Text != "" && periodToCascade != null)
                {
                    var indexToCascade = int.Parse(entry.Text);
                    if (indexToCascade == _addedPeriods.Count)
                    {
                        indexToCascade = 0;
                    }

                    periodToCascade.ElementAt(0).Text = ++indexToCascade + "";
                }
                else if (entry.Text != "" && periodToCascade == null)
                {
                }
            };
            mainGrid.Children.Add(intervalEntry, 3, rowCount++);

            if (_addedPeriods == null)
            {
                _addedPeriods = new List <List <Entry> >();
            }
            List <Entry> addedPeriod = new List <Entry>()
            {
                indexEntry, nameEntry, intervalEntry
            };

            if (true)
            {
                _addedPeriods.Add(addedPeriod);
            }
        }