All docs
V21.2
21.2
21.1
20.2
The page you are viewing does not exist in version 20.2. This link will take you to the root page.
20.1
The page you are viewing does not exist in version 20.1. This link will take you to the root page.
19.2
The page you are viewing does not exist in version 19.2. This link will take you to the root page.
19.1
The page you are viewing does not exist in version 19.1. This link will take you to the root page.
18.2
The page you are viewing does not exist in version 18.2. This link will take you to the root page.
18.1
The page you are viewing does not exist in version 18.1. This link will take you to the root page.
17.2
The page you are viewing does not exist in version 17.2. This link will take you to the root page.

DataSourceAdapter Class

An adapter that loads data from a source to the series.

Namespace: DevExpress.XtraCharts

Assembly: DevExpress.XtraCharts.v21.2.dll

Declaration

public class DataSourceAdapter :
    DataSourceAdapterBase,
    ISeriesAdapter,
    IChartDataAdapter,
    ICloneable

Example

This example shows how to create a series that requires one value per argument and populate it with data.

using DevExpress.Utils;
using DevExpress.XtraCharts;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace ChartDataAdapters {
    public partial class Form1 : Form {
        readonly TemperatureData temperatureData = new TemperatureData(new Random(9));
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {
            // Create a series.
            Series series = new Series("Temperature", ViewType.Spline);

            // Create a data adapter.
            DataSourceAdapter dataAdapter = new DataSourceAdapter();

            // Specify the data source.
            dataAdapter.DataSource = temperatureData.Points;

            // Create a data member that defines arguments.
            dataAdapter.DataMembers.Add(new DataMember {
                DataMemberType = ChartDataMemberType.Argument,
                ColumnName = "TimeStamp",
                ScaleType = ScaleType.TimeSpan
            });
            // Create a data member that defines values.
            dataAdapter.DataMembers.Add(new DataMember {
                DataMemberType = ChartDataMemberType.Value,
                ColumnName = "Temperature",
                ScaleType = ScaleType.Numerical
            });

            // Assign the data adapter to the series.
            series.DataAdapter = dataAdapter;
        }
    }
    class TemperatureData {
        const int PointsCount = 250;
        readonly TemperaturePoint maxTemperaturePoint = new TemperaturePoint(TimeSpan.Zero, double.MinValue);
        readonly TemperaturePoint minTemperaturePoint = new TemperaturePoint(TimeSpan.MaxValue, double.MaxValue);
        readonly List<TemperaturePoint> points = new List<TemperaturePoint>(PointsCount);
        internal TemperaturePoint MaxTemperaturePoint {
            get { return maxTemperaturePoint; }
        }
        internal TemperaturePoint MinTemperaturePoint {
            get { return minTemperaturePoint; }
        }
        internal double OptimalTemperature {
            get { return 53; }
        }
        internal List<TemperaturePoint> Points {
            get { return points; }
        }
        internal TemperatureData(Random random) {
            double preTemperature = 50;
            for (int i = 0; i < PointsCount; i++) {
                TimeSpan time = TimeSpan.FromSeconds(i);
                double temperature = preTemperature + (random.NextDouble() - 0.5) * 10;
                if (temperature > 90)
                    temperature -= 20;
                if (temperature < 20)
                    temperature += 10;
                TemperaturePoint temperaturePoint = new TemperaturePoint(time, temperature);
                if (temperature < minTemperaturePoint.Temperature)
                    minTemperaturePoint = temperaturePoint;
                if (temperature > maxTemperaturePoint.Temperature)
                    maxTemperaturePoint = temperaturePoint;
                points.Add(temperaturePoint);
                preTemperature = temperature;
            }
        }
    }
    public class TemperaturePoint {
        public TimeSpan TimeStamp { get; private set; }
        public double Temperature { get; private set; }

        internal TemperaturePoint(TimeSpan time, double temperature) {
            this.TimeStamp = time;
            this.Temperature = temperature;
        }
    }
}
See Also