The DynamicSeries definition is encapsulated by the ChartSeriesDescriptorabstract class. The descriptor class serves as a series factory and creates the desired ChartSeries instance. The type of the series to be created will be retrieved from the Style property and its TargetType. Concrete descriptor implementations will be separated by the data type – categorical, scatter, pie, etc. The dynamic data will be passed to the chart through a separate Data Source object, named ChartSeriesProvider. It will contain a collection of series descriptors as well as descriptor selector, allowing for context-based series creation. The raw data will be passed through the Source property (like in CollectionViewSource).

User Scenarios

DynamicSeries could be used in various user scenarios:

  • Allow the user to pass dynamic data to the chart and let the chart handle series generation, depending on some abstract definition/description of the desired series.
  • Allow the user to have context-based series creation.
  • Support the following data formats:
    • Collection of collections – e.g. List of arrays.
    • Collection of view models, where each model contains a property, containing the data for the series.
  • Reflect a change in the dynamic data visually.


Here is the architecture of the DynamicSeries:

  • SeriesProvider: Represents a logical object that may be used to feed a RadChartBase instance with data, leaving the series creation to the chart itself.
  • SeriesDescriptors: Gets the collection of ChartSeriesDescriptor objects that specify what chart series are to be created. Here are listed all types of series descriptors:

You have two ways to set the desired type of series you want to use.

  • Via TypePath property in your SeriesDescriptor - set a value of type Type matching the Series name.
  • By setting TargetType = telerik:Series in the style of your SeriesDescriptor - where Series is the name of the desired Series. For example: TargetType = "telerik:BarSeries".
In this article