Skip to main content

SpreadsheetControlOptions.CalculationEngineType Property

Gets or sets the parameter that specifies the computational model used in worksheet calculations.

Namespace: DevExpress.Xpf.Spreadsheet

Assembly: DevExpress.Xpf.Spreadsheet.v23.2.dll

NuGet Package: DevExpress.Wpf.Spreadsheet

Declaration

public CalculationEngineType CalculationEngineType { get; set; }

Property Value

Type Description
CalculationEngineType

A CalculationEngineType enumeration member.

Available values:

Name Description
ChainBased

This is the default calculation engine type. It constructs the calculation chain.

Spreadsheet analyzes cell formulas to build the tree of dependencies between cells, and constructs the calculation chain. When cell content is modified, the dependency tree allows you to determine which cells should be calculated. Those cells are marked as needing recalculation.

There are also cells which are always marked as needing calculation. They are listed below:

  • containing volatile function
  • referencing another cell which always needs recalculation
  • containing a circular reference

After calling the Workbook.EndUpdate method, the Spreadsheet calculates all cells marked as needing recalculation.

Recursive

This type of calculation engine was used by default before v15.1.

When the cell content is modified, all cells are marked as needing recalculation. Calculation of a particular cell is performed when needed - in a situation when its actual value is required for rendering or when the calculation engine attempts to obtain a value of another cell which references the current cell.

Property Paths

You can access this nested property as listed below:

Object Type Path to CalculationEngineType
SpreadsheetControl
.Options .CalculationEngineType

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the CalculationEngineType property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also