PivotGridControl.CustomChartDataSourceData Event
Occurs when a PivotGridControl prepares data to be displayed in a ChartControl.
Namespace: DevExpress.XtraPivotGrid
Assembly: DevExpress.XtraPivotGrid.v24.2.dll
NuGet Package: DevExpress.Win.PivotGrid
#Declaration
public event PivotCustomChartDataSourceDataEventHandler CustomChartDataSourceData
#Event Data
The CustomChartDataSourceData event's data class is PivotCustomChartDataSourceDataEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
Cell |
Gets an object which contains information about a Pivot |
Field |
Gets an object which contains information about a field value to be displayed in a Chart |
Item |
Gets the type of a chart data member that will represent the current Pivot Grid Control item. |
Item |
Gets a value representing the type of a Pivot |
Value |
Gets or sets a value to be displayed in a Chart |
#Example
The following example demonstrates how to add custom text to data prepared by the PivotGridControl, to display it in a ChartControl.
For this, it is necessary to handle the PivotGridControl.CustomChartDataSourceData
event. In this event handler, you can determine the item type via the PivotCustomChartDataSourceDataEventArgs.ItemType property and change the PivotCustomChartDataSourceDataEventArgs.Value according to your custom requirements.
private void pivotGridControl1_CustomChartDataSourceData(object sender,
PivotCustomChartDataSourceDataEventArgs e) {
if(e.ItemType == PivotChartItemType.RowItem) {
if(e.FieldValueInfo.Field == fieldCategoryName) {
e.Value = CategoryEncodeTable[e.FieldValueInfo.Value.ToString()];
} else if(e.FieldValueInfo.Field == fieldProductName) {
string product =
ProductEncodeTable[e.FieldValueInfo.Value.ToString()];
string category =
CategoryEncodeTable[e.FieldValueInfo.GetHigherLevelFieldValue(fieldCategoryName).ToString()];
e.Value = product + '[' + category + ']';
}
}
if(e.ItemType == PivotChartItemType.ColumnItem) {
if(e.FieldValueInfo.ValueType == PivotGridValueType.GrandTotal) {
e.Value = "Total Sales";
}
}
if(e.ItemType == PivotChartItemType.CellItem) {
e.Value = Math.Round(Convert.ToDecimal(e.CellInfo.Value), 0);
}
}