Пример #1
0
        private void Insert(int index, double distance, double percent)
        {
            #region Validate

            if (index < 0 || index > _entries.Count)
            {
                throw new ArgumentException("Insert index is out of range");
            }

            if (distance < 0)
            {
                throw new ArgumentException("Distance can't be negative");
            }

            #endregion

            // Create the row
            SliderShowValues distanceCtrl = new SliderShowValues()
            {
                Minimum             = 0,
                Maximum             = Math.Max(10, distance * 4),
                Value               = distance,
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center,
            };

            SliderShowValues percentCtrl = new SliderShowValues()
            {
                Minimum             = Math.Min(0, percent),
                Maximum             = Math.Max(1, percent),
                Value               = percent,
                HorizontalAlignment = HorizontalAlignment.Center,
                VerticalAlignment   = VerticalAlignment.Center,
            };

            StopEntry entry = new StopEntry(distanceCtrl, percentCtrl);

            _entries.Insert(index, entry);

            // Add to grid
            Grid.SetColumn(entry.Distance, 0);
            Grid.SetColumn(entry.Percent, 2);

            if (grdStops.RowDefinitions.Count - 1 == index)
            {
                grdStops.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(1, GridUnitType.Auto)
                });
            }

            grdStops.Children.Add(entry.Distance);
            grdStops.Children.Add(entry.Percent);

            SyncGridRowIndices();

            entry.ValueChanged += new EventHandler(Entry_ValueChanged);

            txtInsertIndex.Text = _entries.Count.ToString();
        }
Пример #2
0
            public StopEntry(SliderShowValues distance, SliderShowValues percent)
            {
                this.Distance = distance;
                this.Percent  = percent;

                distance.ValueChanged += new EventHandler(Slider_ValueChanged);
                percent.ValueChanged  += new EventHandler(Slider_ValueChanged);
            }