Skip to main content
A newer version of this page is available. .

PivotGridControl.CustomUnboundFieldData Event

Enables providing data to unbound fields.

Namespace: DevExpress.Xpf.PivotGrid

Assembly: DevExpress.Xpf.PivotGrid.v19.1.dll

Declaration

public event PivotCustomFieldDataEventHandler CustomUnboundFieldData

Event Data

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

Property Description
Field Gets the unbound field currently being processed.
ListSourceRowIndex Gets the current row’s index in the data source.
ThreadSafeField Gets the unbound field currently being processed. Provides read-only access to field settings.
Value Gets or sets the value of the cell currently being processed.

The event data class exposes the following methods:

Method Description
GetListSourceColumnValue(Int32, String) Gets the value of the specified field in the specified row in the control’s underlying data source.
GetListSourceColumnValue(String) Gets the value of the specified cell within the current row in the control’s underlying data source.

Remarks

Unbound fields are not bound to any field in the data source. In most instances, data for unbound fields is obtained from a custom data source or is calculated based upon the values of bound fields. To provide data for unbound fields, you can specify an expression (formula) used to evaluate values for this field using the PivotGridField.UnboundExpression property or handle the CustomUnboundFieldData event.

Note

The CustomUnboundFieldData event is not supported in server and OLAP mode.

To learn more about unbound data, see Unbound Fields.

Example

This example demonstrates how to add an unbound field to the PivotGridControl, to show the total sum of an order.

The PivotGridControl is bound to the Order Details data table (from the nwind sample database), which contains UnitPrice, Quantity and Discount fields. The total sum is calculated as follows: UnitPriceQuantity(1-Discount).

To solve this task, create a PivotGrid’s field and set its PivotGridField.UnboundType property to FieldUnboundColumnType.Decimal. Then, handle the PivotGridControl.CustomUnboundFieldData event and populate the field with data.

<Window xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Title="MainWindow" Height="600" Width="800" 
        x:Class="UnboundFieldExample.MainWindow"
        Loaded="Window_Loaded">
    <Grid>
        <dxpg:PivotGridControl CustomUnboundFieldData="pivotGridControl1_CustomUnboundFieldData" 
                               CustomCellValue="PivotGridControl1_CustomCellValue" 
                               Name="pivotGridControl1">
            <dxpg:PivotGridControl.Fields>
                <dxpg:PivotGridField Name="fieldOrderID" FieldName="OrderID" Area="RowArea"/>
                <dxpg:PivotGridField Name="fieldProductName" FieldName="ProductName" Area="RowArea"/>
                <dxpg:PivotGridField Name="fieldUnitPrice" FieldName="UnitPrice" Area="DataArea"/>
                <dxpg:PivotGridField Name="fieldQuantity" FieldName="Quantity" Area="DataArea"/>
                <dxpg:PivotGridField Name="fieldDiscount" FieldName="Discount" Area="DataArea" 
                                     CellFormat="p"/>
                <dxpg:PivotGridField Name="fieldTotalSum" UnboundType="Decimal" Area="DataArea"
                                     Caption="Total Sum"/>
            </dxpg:PivotGridControl.Fields>
        </dxpg:PivotGridControl>
    </Grid>
</Window>

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

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