internal virtual void OnAxisScaleChanged(object sender, EventArgs e) { Axis axis = sender as Axis; this.UpdateSession.BeginUpdates(); foreach (XYSeries xySeries in this.Series) { XYSeriesPresenter presenter = (XYSeriesPresenter)xySeries.SeriesPresenter; Action action = (Action)null; if (axis == xySeries.XAxis) { action = (Action)(() => presenter.OnXScaleChanged()); } else if (axis == xySeries.YAxis) { action = (Action)(() => presenter.OnYScaleChanged()); } if (action != null) { if (this.ChartAreaPanel != null && this.ChartAreaPanel.IsDirty) { XYChartArea.SeriesAxisKey key = new XYChartArea.SeriesAxisKey() { Series = (Semantic.Reporting.Windows.Chart.Internal.Series)xySeries, Axis = axis }; if (EnumerableFunctions.FindIndexOf <Tuple <object, Action> >((IEnumerable <Tuple <object, Action> >) this._updateActions, (Func <Tuple <object, Action>, bool>)(t => key.Equals(t.Item1))) == -1) { this._updateActions.Enqueue(new Tuple <object, Action>((object)key, action)); } } else { action(); } } } this.UpdateSession.EndUpdates(); }
internal void LoadDataFromVirtualizer(IEnumerable data) { object firstNewDataObject = (object)null; int num = -1; if (!EnumerableFunctions.IsEmpty(data)) { firstNewDataObject = EnumerableFunctions.FastElementAt <object>(data, 0); if (firstNewDataObject != null) { num = EnumerableFunctions.FindIndexOf <DataPoint>((IEnumerable <DataPoint>) this.DataPoints, (Func <DataPoint, bool>)(item => { if (item != firstNewDataObject) { return(item.DataContext == firstNewDataObject); } return(true); })); } } if (num < 0) { this.ItemsSource = data; } else { for (; num > 0; --num) { this.DataPoints.RemoveAt(0); } int index = 0; foreach (object obj in data) { if (index >= 0 && index < this.DataPoints.Count && (this.DataPoints[index] == obj || this.DataPoints[index].DataContext == obj)) { ++index; } else { if (index >= 0) { while (index < this.DataPoints.Count) { this.DataPoints.RemoveAt(index); } index = -1; } DataPoint dataPoint = obj as DataPoint; if (dataPoint == null || !this.IsDataPointCompatible(dataPoint)) { dataPoint = this.CreateDataPoint(); dataPoint.DataContext = obj; if (this.ItemsBinder != null) { this.ItemsBinder.Bind(dataPoint, dataPoint.DataContext); } } this.DataPoints.Add(dataPoint); } } } }