Back to Devexpress

ChartCalculatedFieldCollection Class

corelibraries-devexpress-dot-xtracharts-a792a950.md

latest6.3 KB
Original Source

ChartCalculatedFieldCollection Class

A collection that stores calculated fields.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
public class ChartCalculatedFieldCollection :
    ChartElementNamedCollection,
    IEnumerable<ICalculatedField>,
    IEnumerable
vb
Public Class ChartCalculatedFieldCollection
    Inherits ChartElementNamedCollection
    Implements IEnumerable(Of ICalculatedField),
               IEnumerable

The following members return ChartCalculatedFieldCollection objects:

LibraryRelated API Members
WinForms ControlsChartControl.CalculatedFields
ASP.NET MVC ExtensionsChartControlSettings.CalculatedFields
ASP.NET Web Forms ControlsWebChartControl.CalculatedFields

Remarks

The ChartCalculatedFieldCollection is a collection of the ChartCalculatedField objects.

Example

The following example shows how to create a calculated field and then use this field as a data source for a series. The field’s values are calculated by the following expression: [Time.Seconds] * [Velocity].

csharp
using DevExpress.XtraCharts;
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace CalculatedFieldExample {
    public partial class Form1 : Form {
        //...
        private void Form1_Load(object sender, EventArgs e) {
            chartControl1.DataSource = GetDataPoints();

            ChartCalculatedField calcField = new ChartCalculatedField();
            calcField.Expression = "[Time.Seconds] * [Velocity]";
            calcField.FieldType = ChartCalculatedFieldType.Double;
            calcField.Name = "Displacement";
            chartControl1.CalculatedFields.Add(calcField);

            Series series = new Series("series", ViewType.Line);
            series.ArgumentDataMember = "Time";
            series.ValueDataMembers.AddRange("Displacement");
            chartControl1.Series.Add(series);
            XYDiagram diagram = chartControl1.Diagram as XYDiagram;
            diagram.AxisX.TimeSpanScaleOptions.MeasureUnit = TimeSpanMeasureUnit.Second;
            diagram.AxisY.WholeRange.AlwaysShowZeroLevel = false;
        }
        public List<DataPoint> GetDataPoints() {
            List<DataPoint> dataPoints = new List<DataPoint>() {
                new DataPoint (new TimeSpan(0, 0, 0), 10),
                new DataPoint (new TimeSpan(0, 0, 1), 11.46),
                new DataPoint (new TimeSpan(0, 0, 2), 11.90),
                //...
                // Other data points here.
                // ...
                new DataPoint (new TimeSpan(0, 0, 12), 15.756)
            };
            return dataPoints;
        }
    }
    public class DataPoint {
        public TimeSpan Time { get; set; }
        public double Velocity { get; set; }
        public DataPoint(TimeSpan time, double velocity) {
            this.Time = time;
            this.Velocity = velocity;
        }
    }
}
vb
Imports DevExpress.XtraCharts
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms

Namespace CalculatedFieldExample
    Public Partial Class Form1
        Inherits Form
        '...
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
            chartControl1.DataSource = GetDataPoints()

            Dim calcField As ChartCalculatedField = New ChartCalculatedField()
            calcField.Expression = "[Time.Seconds] * [Velocity]"
            calcField.FieldType = ChartCalculatedFieldType.[Double]
            calcField.Name = "Displacement"
            chartControl1.CalculatedFields.Add(calcField)

            Dim series As Series = New Series("series", ViewType.Line)
            series.ArgumentDataMember = "Time"
            series.ValueDataMembers.AddRange("Displacement")
            chartControl1.Series.Add(series)
            Dim diagram As XYDiagram = TryCast(chartControl1.Diagram, XYDiagram)
            diagram.AxisX.TimeSpanScaleOptions.MeasureUnit = TimeSpanMeasureUnit.Second
            diagram.AxisY.WholeRange.AlwaysShowZeroLevel = False
        End Sub
        Public Function GetDataPoints() As List(Of DataPoint)
            Dim dataPoints As List(Of DataPoint) = New List(Of DataPoint)() From {
                New DataPoint(New TimeSpan(0, 0, 0), 10),
                New DataPoint(New TimeSpan(0, 0, 1), 11.46),
                New DataPoint(New TimeSpan(0, 0, 2), 11.90),
                '...
                ' Other data points here.
                '...
                New DataPoint(New TimeSpan(0, 0, 12), 15.756)
            }
            Return dataPoints
        End Function
    End Class
    Public Class DataPoint
        Public Property Time As TimeSpan
        Public Property Velocity As Double
        Public Sub New(ByVal time As TimeSpan, ByVal velocity As Double)
            Me.Time = time
            Me.Velocity = velocity
        End Sub
    End Class
End Namespace

Inheritance

Object CollectionBase ChartCollectionBase ChartElementNamedCollection ChartCalculatedFieldCollection

See Also

ChartCalculatedFieldCollection Members

DevExpress.XtraCharts Namespace