Back to Devexpress

SeriesTemplate.DataAdapter Property

corelibraries-devexpress-dot-xtracharts-dot-seriestemplate-e6747311.md

latest11.4 KB
Original Source

SeriesTemplate.DataAdapter Property

Gets or sets the adapter used to create multiple series based on a template.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
[XtraChartsLocalizableCategory(XtraChartsCategory.Data)]
public ISeriesTemplateAdapter DataAdapter { get; set; }
vb
<XtraChartsLocalizableCategory(XtraChartsCategory.Data)>
Public Property DataAdapter As ISeriesTemplateAdapter

Property Value

TypeDescription
ISeriesTemplateAdapter

A data adapter that generates series based on a template.

|

Remarks

The specified data adapter creates series based on the chart control’s DataSource.

To specify the DataAdapter property, use the predefined data adapters listed below:

For more information, see the following section: Load Data.

Examples

The following example shows how to create multiple series based on a template:

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

namespace SeriesTempateAdapters {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();

            // Create a data source object and assign it to the chart.
            SalesData data = new SalesData();
            chartControl1.DataSource = data.Points;

            // Create a data adapter that generates series based on a template.
            SeriesTemplateAdapter dataAdapter = new SeriesTemplateAdapter();

            // Define a data member that contains series names.
            dataAdapter.DataMembers.Add(new DataMember {
                DataMemberType = ChartDataMemberType.Series,
                ColumnName = "CompanyDivision",
                ScaleType = ScaleType.Qualitative
            });

            // Define a data member that contains arguments.
            dataAdapter.DataMembers.Add(new DataMember {
                DataMemberType = ChartDataMemberType.Argument,
                ColumnName = "Date",
                ScaleType = ScaleType.DateTime
            });

            // Define a data member that contains values.
            dataAdapter.DataMembers.Add(new DataMember {
                DataMemberType = ChartDataMemberType.Value,
                ColumnName = "Total",
                ScaleType = ScaleType.Numerical
            });

            // Assign the adapter to the chart.
            chartControl1.SeriesTemplate.DataAdapter = dataAdapter;

            chartControl1.SeriesTemplate.ChangeView(ViewType.Bar);
            chartControl1.SeriesTemplate.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;

            ((XYDiagram)chartControl1.Diagram).AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month;
            ((XYDiagram)chartControl1.Diagram).AxisX.Tickmarks.MinorVisible = false;
        }
    }
    class SalesData {
        internal List<DataPoint> Points { get; } = new List<DataPoint>() {
            new DataPoint ( "North", new DateTime(2020, 07, 01), 234 ),
            new DataPoint ( "North", new DateTime(2020, 08, 01), 196 ),
            new DataPoint ( "North", new DateTime(2020, 09, 01), 272 ),
            new DataPoint ( "North", new DateTime(2020, 10, 01), 308 ),
            new DataPoint ( "North", new DateTime(2020, 11, 01), 362 ),
            new DataPoint ( "North", new DateTime(2020, 12, 01), 224 ),

            new DataPoint ( "South", new DateTime(2020, 07, 01), 192 ),
            new DataPoint ( "South", new DateTime(2020, 08, 01), 319 ),
            new DataPoint ( "South", new DateTime(2020, 09, 01), 222 ),
            new DataPoint ( "South", new DateTime(2020, 10, 01), 225 ),
            new DataPoint ( "South", new DateTime(2020, 11, 01), 251 ),
            new DataPoint ( "South", new DateTime(2020, 12, 01), 327 ),

            new DataPoint ( "West", new DateTime(2020, 07, 01), 257 ),
            new DataPoint ( "West", new DateTime(2020, 08, 01), 302 ),
            new DataPoint ( "West", new DateTime(2020, 09, 01), 344 ),
            new DataPoint ( "West", new DateTime(2020, 10, 01), 280 ),
            new DataPoint ( "West", new DateTime(2020, 11, 01), 321 ),
            new DataPoint ( "West", new DateTime(2020, 12, 01), 324 )
        };
    }
    public class DataPoint {
        public string CompanyDivision { get; private set; }
        public DateTime Date { get; private set; }
        public double Total { get; private set; }

        internal DataPoint(string companyDivision, DateTime date, double total) {
            this.CompanyDivision = companyDivision;
            this.Date = date;
            this.Total = total;
        }
    }
}
vb
Imports DevExpress.XtraCharts
Imports System
Imports System.Collections.Generic
Imports System.Windows.Forms

Namespace SeriesTempateAdapters
    Public Partial Class Form1
        Inherits Form

        Public Sub New()
            InitializeComponent()

            ' Create a data source object and assign it to the chart.
            Dim data As SeriesTempateAdapters.SalesData = New SeriesTempateAdapters.SalesData()
            chartControl1.DataSource = data.Points

            ' Create a data adapter that generates series based on a template.
            Dim dataAdapter As SeriesTemplateAdapter = New SeriesTemplateAdapter()

            ' Define a data member that contains series names.
            dataAdapter.DataMembers.Add(New DataMember With {
                .DataMemberType = ChartDataMemberType.Series,
                .ColumnName = "CompanyDivision",
                .ScaleType = ScaleType.Qualitative
            })

            ' Define a data member that contains arguments.
            dataAdapter.DataMembers.Add(New DataMember With {
                .DataMemberType = ChartDataMemberType.Argument,
                .ColumnName = "Date",
                .ScaleType = ScaleType.DateTime
            })

            ' Define a data member that contains values.
            dataAdapter.DataMembers.Add(New DataMember With {
                .DataMemberType = ChartDataMemberType.Value,
                .ColumnName = "Total",
                .ScaleType = ScaleType.Numerical
            })

            ' Assign the adapter to the chart.
            chartControl1.SeriesTemplate.DataAdapter = dataAdapter

            chartControl1.SeriesTemplate.ChangeView(ViewType.Bar)
            chartControl1.SeriesTemplate.LabelsVisibility = DevExpress.Utils.DefaultBoolean.[True]
            CType(chartControl1.Diagram, XYDiagram).AxisX.DateTimeScaleOptions.MeasureUnit = DateTimeMeasureUnit.Month
            CType(chartControl1.Diagram, XYDiagram).AxisX.Tickmarks.MinorVisible = False
        End Sub
    End Class

    Friend Class SalesData
        Friend ReadOnly Property Points As System.Collections.Generic.List(Of SeriesTempateAdapters.DataPoint) = New System.Collections.Generic.List(Of SeriesTempateAdapters.DataPoint)() From {
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 07, 01), 234),
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 08, 01), 196),
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 09, 01), 272),
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 10, 01), 308),
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 11, 01), 362),
            New SeriesTempateAdapters.DataPoint("North", New System.DateTime(2020, 12, 01), 224),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 07, 01), 192),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 08, 01), 319),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 09, 01), 222),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 10, 01), 225),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 11, 01), 251),
            New SeriesTempateAdapters.DataPoint("South", New System.DateTime(2020, 12, 01), 327),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 07, 01), 257),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 08, 01), 302),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 09, 01), 344),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 10, 01), 280),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 11, 01), 321),
            New SeriesTempateAdapters.DataPoint("West", New System.DateTime(2020, 12, 01), 324)
        }
    End Class

    Public Class DataPoint
        Private _CompanyDivision As String, _Date As System.DateTime, _Total As Double

        Public Property CompanyDivision As String
            Get
                Return _CompanyDivision
            End Get
            Private Set(ByVal value As String)
                _CompanyDivision = value
            End Set
        End Property

        Public Property [Date] As System.DateTime
            Get
                Return _Date
            End Get
            Private Set(ByVal value As System.DateTime)
                _Date = value
            End Set
        End Property

        Public Property Total As Double
            Get
                Return _Total
            End Get
            Private Set(ByVal value As Double)
                _Total = value
            End Set
        End Property

        Friend Sub New(ByVal companyDivision As String, ByVal [date] As System.DateTime, ByVal total As Double)
            Me.CompanyDivision = companyDivision
            Me.[Date] = [date]
            Me.Total = total
        End Sub
    End Class
End Namespace

See Also

SeriesTemplate Class

SeriesTemplate Members

DevExpress.XtraCharts Namespace