Provides pivot grouping and aggregation operations for local data sources such as IList collections and user-defined class instances. This data provider enables in-memory pivot operations with support for property-based grouping, filtering, aggregation, and drill-down functionality.
Definition
Namespace:Telerik.Pivot.Core
Assembly:Telerik.WinControls.PivotGrid.dll
Syntax:
public class LocalDataSourceProvider : DataProviderBase, IDataProvider, INotifyPropertyChanged, ISupportInitialize, IUnderlyingDataProvider
Inheritance: objectDataProviderBaseLocalDataSourceProvider
Implements:
Inherited Members
Constructors
Initializes a new instance of the LocalDataSourceProvider class with default pivot engine. Sets up the provider for processing local data sources with in-memory pivot operations and drill-down support.
public LocalDataSourceProvider()
Properties
Gets a collection of LocalAggregateDescription objects that specify how data should be aggregated within the intersection of row and column groups. These define the calculated values displayed in pivot cells using various aggregate functions like Sum, Count, Average, etc.
public Collection<LocalAggregateDescription> AggregateDescriptions { get; }
Gets a collection of CalculatedField objects that define calculated aggregate values. Calculated fields allow creating custom expressions and formulas that can be used as aggregate values in the pivot, providing advanced computation capabilities beyond standard aggregate functions.
public Collection<CalculatedField> CalculatedFields { get; }
Gets a collection of PropertyGroupDescriptionBase objects that specify how the pivot data should be grouped by columns. Column groupings create the hierarchical structure displayed at the top of the pivot grid using object properties.
public Collection<PropertyGroupDescriptionBase> ColumnGroupDescriptions { get; }
Gets or sets the CultureInfo used for grouping, formatting, and sorting operations. This culture affects how data is grouped, displayed, and compared in different locales.
public CultureInfo Culture { get; set; }
Gets or sets a value indicating whether nested properties of objects in the ItemsSource should be displayed in a hierarchical structure. When enabled, complex object properties are shown as expandable tree nodes in the field list.
public bool EnableHierarchy { get; set; }
Gets a collection of PropertyFilterDescriptionBase objects that specify how pivot items should be filtered. Filters are applied to restrict which data items are included in pivot calculations and display.
public Collection<PropertyFilterDescriptionBase> FilterDescriptions { get; }
Gets or sets the data source for pivot operations. This can be any IEnumerable collection such as IList, Array, ObservableCollection, or other enumerable data sources containing the objects to be analyzed and grouped in the pivot.
public object ItemsSource { get; set; }
Results
IPivotResults
Gets the current pivot calculation results containing the processed data from the local data source. This property provides access to the aggregated and grouped data ready for display in pivot controls.
protected override IPivotResults Results { get; }
Overrides:
Gets a collection of PropertyGroupDescriptionBase objects that specify how the pivot data should be grouped by rows. Row groupings create the hierarchical structure displayed on the left side of the pivot grid using object properties.
public Collection<PropertyGroupDescriptionBase> RowGroupDescriptions { get; }
Gets the current state object representing the items source for this data provider. This state is used for field description retrieval and data source management.
public override object State { get; }
The ItemsSource object representing the current provider state.
Overrides:
Methods
Blocks the calling thread until the current refresh operation completes. For local data source provider, this waits for the parallel processing engine to complete all operations.
public override void BlockUntilRefreshCompletes()
Overrides:
Creates a field description provider for retrieving metadata and field information from the local data source. This provider analyzes object properties to discover available fields for pivot operations.
protected override IFieldDescriptionProvider CreateFieldDescriptionsProvider()
A new LocalDataSourceFieldDescriptionsProvider instance for analyzing the local data source.
Overrides:
Creates an aggregate description for the specified field that can be used in local data source pivot operations. The description is configured based on the field type, using appropriate aggregate functions for numeric vs non-numeric data.
protected override IAggregateDescription GetAggregateDescriptionForFieldDescriptionCore(IPivotFieldInfo description)
The pivot field information to create an aggregate description for.
Returns:A LocalAggregateDescription configured for the specified field.
Exceptions:Thrown when description is null.
Overrides:
Creates a filter description for the specified field that can be used in local data source filtering operations. The description is configured with the field name for property-based filtering.
protected override FilterDescription GetFilterDescriptionForFieldDescriptionCore(IPivotFieldInfo description)
The pivot field information to create a filter description for.
Returns:A PropertyFilterDescription configured for the specified field.
Exceptions:Thrown when description is null.
Overrides:
Creates a group description for the specified field that can be used in local data source pivot grouping operations. The description type is chosen based on the field data type, supporting numeric ranges, date/time steps, and property grouping.
protected override IGroupDescription GetGroupDescriptionForFieldDescriptionCore(IPivotFieldInfo description)
The pivot field information to create a group description for.
Returns:A PropertyGroupDescriptionBase configured for the specified field type.
Exceptions:Thrown when description is null.
Overrides:
Extracts the underlying data items for the specified row and column group intersection. This method provides drill-down functionality to access the detailed data behind pivot aggregates.
Performs the core refresh operation by processing the local data source, initializing descriptions, and executing pivot calculations. This method handles field initialization and pivot engine execution.
protected override void RefreshOverride()
Overrides:
Events
Occurs when the underlying data extraction for drill-down operations is completed. This event provides access to the detailed data behind specific pivot intersections.
public event EventHandler<DrillDownCompletedEventArgs> GetUnderlyingDataCompleted
Implements: