Class CartesianSeries
CartesianSeries is the base class for all cartesian charts such as column, line, area, and so on.
Inheritance
Inherited Members
Namespace: Syncfusion.Maui.Charts
Assembly: Syncfusion.Maui.Charts.dll
Syntax
public abstract class CartesianSeries : ChartSeries, IDatapointSelectionDependent, ITooltipDependent, IDataTemplateDependent, ICartesianLegendDependent
Constructors
CartesianSeries()
Initializes a new instance of the CartesianSeries.
Declaration
public CartesianSeries()
Fields
DataLabelSettingsProperty
Identifies the DataLabelSettings bindable property.
Declaration
public static readonly BindableProperty DataLabelSettingsProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
EmptyPointModeProperty
Identifies the EmptyPointMode bindable property.
Declaration
public static readonly BindableProperty EmptyPointModeProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
Remarks
Represents how to calculate value for empty point in the series.
EmptyPointSettingsProperty
Identifies the EmptyPointSettings bindable property.
Declaration
public static readonly BindableProperty EmptyPointSettingsProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
Remarks
Provides customization for the empty points.
LabelProperty
Identifies the Label bindable property.
Declaration
public static readonly BindableProperty LabelProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
ShowTrackballLabelProperty
Identifies the ShowTrackballLabel bindable property.
Declaration
public static readonly BindableProperty ShowTrackballLabelProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
TrackballLabelTemplateProperty
Identifies the TrackballLabelTemplate bindable property.
Declaration
public static readonly BindableProperty TrackballLabelTemplateProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
TrendlinesProperty
Identifies the Trendlines bindable property.
Declaration
public static readonly BindableProperty TrendlinesProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
XAxisNameProperty
Identifies the XAxisName bindable property.
Declaration
public static readonly BindableProperty XAxisNameProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
YAxisNameProperty
Identifies the YAxisName bindable property.
Declaration
public static readonly BindableProperty YAxisNameProperty
Field Value
| Type |
|---|
| Microsoft.Maui.Controls.BindableProperty |
Properties
ActualXAxis
Gets the actual XAxis value.
Declaration
public ChartAxis ActualXAxis { get; }
Property Value
| Type |
|---|
| ChartAxis |
ActualYAxis
Gets the actual YAxis value.
Declaration
public ChartAxis ActualYAxis { get; }
Property Value
| Type |
|---|
| ChartAxis |
DataLabelSettings
Gets or sets a value to customize the appearance of the displaying data labels in the cartesian series.
Declaration
public CartesianDataLabelSettings DataLabelSettings { get; set; }
Property Value
| Type | Description |
|---|---|
| CartesianDataLabelSettings | It takes the CartesianDataLabelSettings. |
Remarks
This allows us to change the look of the displaying labels' content, and shapes at the data point.
Examples
<chart:SfCartesianChart>
<chart:SfCartesianChart.XAxes>
<chart:NumericalAxis/>
</chart:SfCartesianChart.XAxes>
<chart:SfCartesianChart.YAxes>
<chart:NumericalAxis/>
</chart:SfCartesianChart.YAxes>
<chart:SfCartesianChart.Series>
<chart:ColumnSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
ShowDataLabels="True">
<chart:ColumnSeries.DataLabelSettings>
<chart:CartesianDataLabelSettings BarAlignment="Middle" />
</ chart:ColumnSeries.DataLabelSettings>
</chart:ColumnSeries>
</chart:SfCartesianChart.Series>
</chart:SfCartesianChart>
EmptyPointMode
Gets or sets a value that indicates to displays NaN data points for the series.
Declaration
public EmptyPointMode EmptyPointMode { get; set; }
Property Value
| Type | Description |
|---|---|
| EmptyPointMode | It accepts EmptyPointMode values and its default value is None. |
Remarks
Empty points are not supported for the Histogram and BoxAndWhisker series
Examples
<chart:SfCartesianChart>
<!-- ... Eliminated for simplicity-->
<chart:ColumnSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
EmptyPointMode = "Zero"/>
</chart:SfCartesianChart>
EmptyPointSettings
Gets or sets the configuration for how empty or missing data points are handled and displayed within a chart series.
Declaration
public EmptyPointSettings EmptyPointSettings { get; set; }
Property Value
| Type | Description |
|---|---|
| EmptyPointSettings | It accepts EmptyPointSettings values. |
Remarks
EmptyPointSettings is not supported for all area-related series, as well as for FastChart and ErrorBarSeries.
Examples
<chart:SfCartesianChart>
<!-- ... Eliminated for simplicity-->
<chart:LineSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
EmptyPointMode="Zero">
<chart:LineSeries.EmptyPointSettings>
<chart:EmptyPointSettings Fill="Red"/>
</chart:LineSeries.MarkerSettings>
</chart:LineSeries>
</chart:SfCartesianChart>
Label
Gets or sets a value that will be displayed in the associated legend item.
Declaration
public string Label { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String | It accepts a string value and its default value is string.Empty. |
Examples
<chart:SfCartesianChart>
<!-- ... Eliminated for simplicity-->
<chart:ColumnSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
Label = "ColumnSeries"/>
</chart:SfCartesianChart>
ShowTrackballLabel
Gets or sets whether to show trackball label on the corresponding series
Declaration
public bool ShowTrackballLabel { get; set; }
Property Value
| Type |
|---|
| System.Boolean |
TrackballLabelTemplate
Gets or sets the DataTemplate to customize the appearance of the corresponding series Trackball labels.
Declaration
public DataTemplate TrackballLabelTemplate { get; set; }
Property Value
| Type | Description |
|---|---|
| Microsoft.Maui.Controls.DataTemplate | It accepts the Microsoft.Maui.Controls.DataTemplatevalue and its default value is null. |
Examples
<chart:SfCartesianChart>
<chart:SfCartesianChart.TrackballBehavior>
<chart:ChartTrackballBehavior />
</chart:SfCartesianChart.TrackballBehavior>
<chart:SfCartesianChart.Resources>
<DataTemplate x:Key="TrackballTemplate">
<HorizontalStackLayout>
<Image Source="image.png"
WidthRequest="20"
HeightRequest="20"/>
<Label Text="{Binding Label}"
TextColor="Black"
FontAttributes="Bold"
FontSize="12"/>
</HorizontalStackLayout>
</DataTemplate>
</chart:SfCartesianChart.Resources>
<chart:SfCartesianChart.XAxes>
<chart:NumericalAxis/>
</chart:SfCartesianChart.XAxes>
<chart:SfCartesianChart.YAxes>
<chart:NumericalAxis/>
</chart:SfCartesianChart.YAxes>
<chart:SfCartesianChart.Series>
<chart:LineSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
ShowTrackballLabel = "True"
TrackballLabelTemplate="{StaticResource TrackballTemplate}">
</chart:LineSeries>
</chart:SfCartesianChart.Series>
</chart:SfCartesianChart>
Trendlines
Gets or sets the collection of trendlines for this series.
Declaration
public ChartTrendlineCollection Trendlines { get; set; }
Property Value
| Type |
|---|
| ChartTrendlineCollection |
XAxisName
Gets or sets the name of the (horizontal) axis in the XAxes collection which is used to plot the series with particular axis.
Declaration
public string XAxisName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String | It takes the string value and its default value is null. |
Examples
<chart:SfCartesianChart>
<chart:SfCartesianChart.XAxes>
<chart:CategoryAxis x:Name="XAxis1"/>
<chart:NumericalAxis x:Name="XAxis2"/>
</chart:SfCartesianChart.XAxes>
<chart:SfCartesianChart.YAxes>
<chart:NumericalAxis />
</chart:SfCartesianChart.YAxes>
<chart:SplineSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
XAxisName="XAxis1" />
<chart:ColumnSeries ItemsSource = "{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
XAxisName="XAxis2" />
</chart:SfCartesianChart>
YAxisName
Gets or sets the name of the (vertical) axis in the YAxes collection which is used to plot the series with particular axis.
Declaration
public string YAxisName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String | It takes the string value and its default value is null. |
Examples
<chart:SfCartesianChart>
<chart:SfCartesianChart.XAxes>
<chart:CategoryAxis />
</chart:SfCartesianChart.XAxes>
<chart:SfCartesianChart.YAxes>
<chart:NumericalAxis x:Name="YAxis1"/>
<chart:NumericalAxis x:Name="YAxis2"/>
</chart:SfCartesianChart.YAxes>
<chart:SplineSeries ItemsSource="{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
YAxisName="YAxis1" />
<chart:ColumnSeries ItemsSource = "{Binding Data}"
XBindingPath="XValue"
YBindingPath="YValue"
YAxisName="YAxis2" />
</chart:SfCartesianChart>
Methods
GetDataPoints(Rect)
Declaration
public List<object> GetDataPoints(Rect rectangle)
Parameters
| Type | Name | Description |
|---|---|---|
| Microsoft.Maui.Graphics.Rect | rectangle |
Returns
| Type |
|---|
| System.Collections.Generic.List<System.Object> |
GetDataPoints(Double, Double, Double, Double)
Declaration
public List<object> GetDataPoints(double startX, double endX, double startY, double endY)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | startX | |
| System.Double | endX | |
| System.Double | startY | |
| System.Double | endY |
Returns
| Type |
|---|
| System.Collections.Generic.List<System.Object> |
OnBindingContextChanged()
Declaration
protected override void OnBindingContextChanged()
Overrides
OnParentSet()
Declaration
protected override void OnParentSet()
Overrides
ResumeNotification()
Resumes collection change notification processing for this series. All buffered collection changes are applied in a single consolidated update: segments generated once, axes recalculated once, and a single render refresh triggered.
Declaration
public void ResumeNotification()
Remarks
This method processes all changes that were buffered during suspension. The changes are coalesced where possible (e.g., consecutive Add operations) to maximize performance before being applied to the series.
If the series is not currently suspended, this method returns immediately without performing any operations.
Examples
SfCartesianChart chart = new SfCartesianChart();
ViewModel viewModel = new ViewModel();
var series = new FastLineSeries()
{
ItemsSource = viewModel.Data,
XBindingPath = "Category",
YBindingPath = "Value"
};
chart.Series.Add(series);
// Batch multiple operations efficiently
series.SuspendNotification();
// Perform multiple data modifications
viewModel.Data.Clear();
viewModel.Data.Add(new DataModel { Category = "A", Value = 10 });
viewModel.Data.Add(new DataModel { Category = "B", Value = 20 });
viewModel.Data.Add(new DataModel { Category = "C", Value = 30 });
// Apply all changes in one visual update
series.ResumeNotification();
SuspendNotification()
Suspends collection change notification processing for this series. All data source changes are buffered and deferred until ResumeNotification() is called, resulting in a single consolidated visual update instead of individual updates for each change.
Declaration
public void SuspendNotification()
Remarks
Use this method to efficiently batch large data updates, such as adding or modifying 1000+ data points in a single operation. Without suspension, each collection change triggers a full segment generation and render cycle, which can cause UI freezes and dropped frames. With suspension/resume, all changes are applied atomically in a single render cycle.
Calling this method multiple times has no additional effect after the first call. The suspension state remains active until ResumeNotification() is explicitly called.
Performance Benefit: For bulk operations involving 1000+ items, using suspend/resume can improve processing time.
Examples
SfCartesianChart chart = new SfCartesianChart();
ViewModel viewModel = new ViewModel();
var series = new FastLineSeries()
{
ItemsSource = viewModel.Data,
XBindingPath = "XValue",
YBindingPath = "YValue"
};
chart.Series.Add(series);
// Suspend notifications before bulk update
series.SuspendNotification();
try
{
// Add many data points without triggering updates
for (int i = 0; i < 1000; i++)
{
viewModel.Data.Add(new DataPoint
{
XValue = i,
YValue = i+1
});
}
}
finally
{
// Resume and apply all changes at once
series.ResumeNotification();
}