I am trying to find the best way to add a secondary Y axis for a line series. An example of this would be a Fahrenheit secondary Y axis for a Celsius primary Y axis. The best way I have figured out so far is to create a dummy series that is not visible and that shares the same X axis and color as the primary axis. The minimum and maximum values are then set based on the ActualRange of the primary axis. This is not ideal because the secondary axis ticks aren't being generated on round numbers.
Is there a better way to do this?
Is there an event that I can use to update the secondary Y axis minimum and maximum when the ActualRange of the primary axis changes?
// Create data table with test dataDataTable dataTable = new DataTable();dataTable.Columns.Add(new DataColumn("Date", typeof(DateTime) ));dataTable.Columns.Add(new DataColumn("Temp", typeof(float) ));dataTable.Rows.Add(new DateTime(2016, 2, 1), 245.0f);dataTable.Rows.Add(new DateTime(2016, 3, 1), 248.0f);dataTable.Rows.Add(new DateTime(2016, 4, 1), 238.0f);// Create line series for test dataLineSeries lineSeries1 = new LineSeries();lineSeries1.Name = "Temperature";lineSeries1.Spline = false;lineSeries1.ValueMember = "Temp";lineSeries1.CategoryMember = "Date";lineSeries1.DataSource = dataTable;// dummy line series for secondary axisLineSeries dummyLineSeries = new LineSeries();dummyLineSeries.Name = "Dummy Temperature";dummyLineSeries.Spline = false;dummyLineSeries.IsVisible = false;dummyLineSeries.BorderColor = lineSeries1.BorderColor;// X Axis definitionDateTimeCategoricalAxis DTcategoricalAxis1 = new DateTimeCategoricalAxis();DTcategoricalAxis1.PlotMode = AxisPlotMode.OnTicks;DTcategoricalAxis1.LabelFormat = "{0:MMMyy}";DTcategoricalAxis1.Title = "Month-Year";DTcategoricalAxis1.AxisType = Telerik.Charting.AxisType.First;// Primary Y Axis definitionLinearAxis linearAxis1 = new LinearAxis();linearAxis1.Title = "Temperature (°C)";linearAxis1.AxisType = Telerik.Charting.AxisType.Second;// Secondary Y Axis definitionLinearAxis linearAxis2 = new LinearAxis();linearAxis2.Title = "Temperature (°F)";linearAxis2.AxisType = Telerik.Charting.AxisType.Second;linearAxis2.HorizontalLocation = AxisHorizontalLocation.Right;// Add Axes to the line serieslineSeries1.HorizontalAxis = DTcategoricalAxis1;lineSeries1.VerticalAxis = linearAxis1;dummyLineSeries.HorizontalAxis = DTcategoricalAxis1;dummyLineSeries.VerticalAxis = linearAxis2; // Add line series to chartradChartView1.Series.AddRange( lineSeries1, dummyLineSeries);// Force secondary axis range to match adjusted linearAxis2.Minimum = linearAxis1.ActualRange.Minimum * 1.8 + 32.0;linearAxis2.Maximum = linearAxis1.ActualRange.Maximum * 1.8 + 32.0;