private void RemoveChartData(DrawnChartData drawnChartDataToRemove) { drawnChartDataToRemove.Observer.Dispose(); drawnChartDataList.Remove(drawnChartDataToRemove); plotView.Model.Series.Remove((Series)drawnChartDataToRemove.ChartDataSeries); }
/// <summary> /// Defines the area taken up by the visible chart data based on the provided chart data. /// </summary> /// <param name="chartData">The data to determine the visible extent for.</param> /// <returns>The area definition.</returns> /// <exception cref="ArgumentException">Thrown when <paramref name="chartData"/> is /// not part of the drawn chart data.</exception> private Extent CreateEnvelopeForVisibleSeries(ChartData chartData) { if (chartData is ChartDataCollection collection) { return(CreateEnvelopeForVisibleSeries(collection)); } DrawnChartData drawnChartData = drawnChartDataList.FirstOrDefault(dmd => dmd.ChartData.Equals(chartData)); if (drawnChartData == null) { throw new ArgumentException($@"Can only zoom to {nameof(ChartData)} that is part of this {nameof(ChartControl)}s drawn {nameof(chartData)}.", nameof(chartData)); } var extent = new Extent(); ChartData chartDataDrawn = drawnChartData.ChartData; if (chartDataDrawn.IsVisible && chartDataDrawn.HasData) { extent.ExpandToInclude(CreateExtentFor(drawnChartData.ChartDataSeries as XYAxisSeries)); } return(extent); }
private void DrawChartData(ChartData chartData) { IChartDataSeries chartDataSeries = ChartDataSeriesFactory.Create(chartData); var drawnChartData = new DrawnChartData { ChartData = chartData, ChartDataSeries = chartDataSeries }; drawnChartData.Observer = new Observer(() => { drawnChartData.ChartDataSeries.Update(); plotView.InvalidatePlot(true); }) { Observable = chartData }; drawnChartDataList.Add(drawnChartData); plotView.Model.Series.Add((Series)chartDataSeries); }