Skip to main content
A newer version of this page is available.

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.v19.1.Core.dll

Declaration

string SeriesDataMember { get; set; }

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
    }
}
See Also