SnapChart.SeriesDataMember Property
Gets or sets the name of the data field whose values are used to automatically generate and populate chart series.
Namespace: DevExpress.Snap.Core.API
Assembly: DevExpress.Snap.v21.2.Core.dll
NuGet Package: DevExpress.Snap.Core
Declaration
Property Value
Type | Description |
---|---|
String | A String value that specifies the data field’s name. |
Remarks
When chart binding is used to automatically generate chart series based upon the data obtained from the associated data source (SnapChart.DataSource), a rule needs to be defined to help the chart recognize data records whose values should be used to construct individual series objects. To do this, the SeriesDataMember property is used. It specifies the data field whose values are taken into account when series objects are automatically created and populated.
Each automatically generated series gets its name from the data field specified by the SeriesDataMember property. This name is used to identify a series within the chart’s legend. You can also use the SnapChart.SeriesNameTemplate property to add a prefix or postfix to each series name.
The template settings for the dynamically created series are accessible using the chart’s SnapChart.SeriesTemplate property. In particular, the SeriesBase.ArgumentDataMember and SeriesBase.ValueDataMembers properties specify data fields from which the arguments and data values of series data points are obtained.
Note that if the SeriesDataMember property is not set for a chart, it can’t automatically generate series even if the SeriesBase.ArgumentDataMember and SeriesBase.ValueDataMembers properties are defined.
Example
using System;
using System.Data;
using DevExpress.XtraCharts;
using DevExpress.Snap.Core.API;
namespace SnapChartAPI
{
public partial class Form1 : DevExpress.XtraBars.Ribbon.RibbonForm
{
public Form1() {
InitializeComponent();
#region #CreateChart
SnapDocument document = snapControl.Document;
// Insert a chart into the document.
SnapChart chart = document.CreateSnChart(document.Range.Start);
chart.BeginUpdate();
// Create a data table and bind the chart to it.
chart.DataSource = CreateChartData();
// Populate chart series with data.
chart.SeriesDataMember = "Year";
chart.SeriesTemplate.ArgumentDataMember = "Region";
chart.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "Sales" });
// Specify the series view options.
chart.SeriesTemplate.ChangeView(ViewType.Bar);
chart.SeriesNameTemplate.BeginText = "Year: ";
// Add the chart title.
ChartTitle chartTitle = new ChartTitle();
chartTitle.Text = "DevAV Sales by Regions";
chartTitle.Alignment = System.Drawing.StringAlignment.Center;
chartTitle.Dock = ChartTitleDockStyle.Top;
chart.Titles.Add(chartTitle);
// Add the value axis title.
XYDiagram diagram = (XYDiagram)chart.Diagram;
diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True;
diagram.AxisY.Title.Alignment = System.Drawing.StringAlignment.Center;
diagram.AxisY.Title.Text = "Millions of Dollars";
// Set the chart size.
chart.Size = new System.Drawing.Size(640, 425);
chart.UseExplicitSize = true;
// Change the chart palette.
chart.PaletteName = "Slipstream";
chart.EndUpdate();
document.Fields.Update();
#endregion #CreateChart
}
#region #CreateDataSource
DataView CreateChartData() {
int prevYear = DateTime.Now.Year - 1;
// Create a data table.
DataTable table = new DataTable("ChartData");
// Add three columns to the table.
table.Columns.Add("Year", typeof(int));
table.Columns.Add("Region", typeof(string));
table.Columns.Add("Sales", typeof(decimal));
// Add data rows to the table.
table.Rows.Add(prevYear - 2, "Asia", 4.2372D);
table.Rows.Add(prevYear - 2, "Australia", 1.7871D);
table.Rows.Add(prevYear - 2, "Europe", 3.0884D);
table.Rows.Add(prevYear - 2, "North America", 3.4855D);
table.Rows.Add(prevYear - 2, "South America", 1.6027D);
table.Rows.Add(prevYear - 1, "Asia", 4.7685D);
table.Rows.Add(prevYear - 1, "Australia", 1.9576D);
table.Rows.Add(prevYear - 1, "Europe", 3.3579D);
table.Rows.Add(prevYear - 1, "North America", 3.7477D);
table.Rows.Add(prevYear - 1, "South America", 1.8237D);
table.Rows.Add(prevYear, "Asia", 5.2890D);
table.Rows.Add(prevYear, "Australia", 2.2727D);
table.Rows.Add(prevYear, "Europe", 3.7257D);
table.Rows.Add(prevYear, "North America", 4.1825D);
table.Rows.Add(prevYear, "South America", 2.1172D);
return new DataView(table);
}
#endregion #CreateDataSource
}
}