public void ClearPoints()
 {
     foreach (var view in this.ChartContainer.Children)
     {
         SearchCurveView curveView = (SearchCurveView)view;
         curveView.ClearPoints();
     }
     this.index = 0;
 }
        public SearchCurveView AddCurveView(string curveViewName, string displayName, double height = 200.0)
        {
            SearchCurveView curveView = new SearchCurveView(this);

            curveView.CurveViewName = curveViewName;
            curveView.TimeAxisScale = this.TimeAxisScale;
            curveView.Height        = height + ChartView.ViewGap;
            this.ChartContainer.Children.Add(curveView);
            this.AddCurveViewCheckItem(curveViewName, displayName);
            return(curveView);
        }
        private void ZoomChartView(double scale)
        {
            double centerX = 0.0;

            foreach (var view in this.ChartContainer.Children)
            {
                SearchCurveView curveView = (SearchCurveView)view;
                curveView.UpdateCurveScale(scale);
                centerX = curveView.CenterX;
            }
            this.UpdateTimeAxisScale(scale, centerX);
        }
 private void OnItemChecked(string curveViewName, bool itemChecked)
 {
     foreach (var cv in this.ChartContainer.Children)
     {
         SearchCurveView curveView = (SearchCurveView)cv;
         if (curveView.CurveViewName == curveViewName)
         {
             curveView.Visibility = itemChecked ? Visibility.Visible : Visibility.Collapsed;
             break;
         }
     }
 }
        public void SetDataPoints(List <Dictionary <string, object> > dataSource)
        {
            double g = this.Graduation;

            foreach (var view in this.ChartContainer.Children)
            {
                SearchCurveView curveView = (SearchCurveView)view;
                string          key       = curveView.CurveName.ToLower();

                int index = 0;
                foreach (var e in dataSource)
                {
                    if (e.ContainsKey(key))
                    {
                        string valueStr = (string)e[key];
                        double value    = string.IsNullOrEmpty(valueStr) ? 0.0 : double.Parse(valueStr);
                        curveView.AddCurvePoint(new Point(index * g, value));
                    }
                    index++;
                }
            }
        }
        private void TrackTimeLine(MouseEventArgs e)
        {
            bool   timed     = false;
            string timeLabel = string.Empty;

            foreach (var view in this.ChartContainer.Children)
            {
                SearchCurveView curveView = (SearchCurveView)view;

                Point  point   = e.GetPosition((UIElement)curveView.View);
                double x       = point.X;
                double centerX = curveView.CenterX;
                if (!timed && x >= 0)
                {
                    double v     = (x - centerX) / scale + centerX;
                    double index = v / Grad / IntervalCount;

                    timeLabel = this.GetFormatDateTime(this.currentBaseTime, index, IntervalCount * this.Interval);
                }

                curveView.TrackTimeLine(point, timeLabel);
            }
        }
 public SearchCurveView AddCurveView(string curveViewName, string displayName, double height = 200.0)
 {
     SearchCurveView curveView = new SearchCurveView(this);
     curveView.CurveViewName = curveViewName;
     curveView.TimeAxisScale = this.TimeAxisScale;
     curveView.Height = height + ChartView.ViewGap;
     this.ChartContainer.Children.Add(curveView);
     this.AddCurveViewCheckItem(curveViewName, displayName);
     return curveView;
 }