Back to Devexpress

PivotGridControl.CustomChartDataSourceData Event

wpf-devexpress-dot-xpf-dot-pivotgrid-dot-pivotgridcontrol-c7416f24.md

latest5.4 KB
Original Source

PivotGridControl.CustomChartDataSourceData Event

Occurs when a PivotGridControl prepares data to be displayed in a ChartControl.

Namespace : DevExpress.Xpf.PivotGrid

Assembly : DevExpress.Xpf.PivotGrid.v25.2.dll

NuGet Package : DevExpress.Wpf.PivotGrid

Declaration

csharp
public event PivotCustomChartDataSourceDataEventHandler CustomChartDataSourceData
vb
Public Event CustomChartDataSourceData As PivotCustomChartDataSourceDataEventHandler

Event Data

The CustomChartDataSourceData event's data class is PivotCustomChartDataSourceDataEventArgs. The following properties provide information specific to this event:

PropertyDescription
CellInfoGets an object which contains information about a PivotGrid control’s cell, whose value should be displayed in a ChartControl.
FieldValueInfoGets an object which contains information about a field value to be displayed in a ChartControl.
ItemDataMemberGets the type of a chart data member that will represent the current pivot grid item.
ItemTypeGets the type of a PivotGrid control’s item to be represented in a ChartControl.
ValueGets or sets a value to be displayed in a ChartControl.

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.

View Example

vb
Private Sub pivotGridControl1_CustomChartDataSourceData(ByVal sender As Object, _
                              ByVal e As PivotCustomChartDataSourceDataEventArgs) _
                          Handles pivotGridControl1.CustomChartDataSourceData
    If e.ItemType = PivotChartItemType.RowItem Then
        If e.FieldValueInfo.Field Is fieldCategoryName Then
            e.Value = CategoryEncodeTable(e.FieldValueInfo.Value.ToString())
        ElseIf e.FieldValueInfo.Field Is fieldProductName Then
            Dim product As String = ProductEncodeTable(e.FieldValueInfo.Value.ToString())
            Dim category As String = CategoryEncodeTable(e.FieldValueInfo.GetHigherLevelFieldValue(fieldCategoryName).ToString())
            e.Value = product & "["c & category & "]"c
        End If
    End If
    If e.ItemType = PivotChartItemType.ColumnItem Then
        If e.FieldValueInfo.ValueType = PivotGridValueType.GrandTotal Then
            e.Value = "Total Sales"
        End If
    End If
    If e.ItemType = PivotChartItemType.CellItem Then
        e.Value = Math.Round(Convert.ToDecimal(e.CellInfo.Value), 0)
    End If
End Sub
csharp
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);
    }
}

See Also

PivotGridControl Class

PivotGridControl Members

DevExpress.Xpf.PivotGrid Namespace