corelibraries-devexpress-dot-xtracharts-dot-seriestemplate-e6747311.md
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
[XtraChartsLocalizableCategory(XtraChartsCategory.Data)]
public ISeriesTemplateAdapter DataAdapter { get; set; }
<XtraChartsLocalizableCategory(XtraChartsCategory.Data)>
Public Property DataAdapter As ISeriesTemplateAdapter
| Type | Description |
|---|---|
| ISeriesTemplateAdapter |
A data adapter that generates series based on a template.
|
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.
The following example shows how to create multiple series based on a template:
Specify the chart control’s DataSource property.
Create a SeriesTemplateAdapter object.
Populate the adapter DataSourceAdapterBase.DataMembers collection. You should specify data members that contain series names, arguments, and values.
Use the SeriesTemplate.DataAdapter property to assign the adapter to the chart.
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;
}
}
}
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