wpf-devexpress-dot-xpf-dot-pivotgrid-4d343539.md
Represents a Pivot Grid field.
Namespace : DevExpress.Xpf.PivotGrid
Assembly : DevExpress.Xpf.PivotGrid.v25.2.dll
NuGet Package : DevExpress.Wpf.PivotGrid
public class PivotGridField :
DXFrameworkContentElement,
ILogicalOwner,
IInputElement,
IThreadSafeField
Public Class PivotGridField
Inherits DXFrameworkContentElement
Implements ILogicalOwner,
IInputElement,
IThreadSafeField
The following members return PivotGridField objects:
Show 43 links
Pivot Grid Fields supply data to the Pivot Grid control. Fields are visualized with field headers. You can drag-and-drop field between Pivot Grid areas to modify the Pivot Grid’s layout.
Use the the PivotGridControl.Fields property to access the collection of fields.
Refer to the following topics for more information about Pivot Grid fields:
The following example demonstrates how to bind the PivotGridControl to a “SalesPerson” view in the nwind.mdb database, which ships with the installation.
Follow the steps below to connect the Pivot Grid to a database.
OleDbDataAdapter instance to select records from the data source.DataSet object and populate it with data.Follow the steps below to create and configure Pivot Grid fields.
PivotGridField object and add it to the PivotGridControl.Fields collection.AreaIndex can be set only after the field is added to the control’s field collection.DataSourceColumnBinding object to the field’s PivotGridField.DataBinding property.Note that if you want to see an example of how to add pivot grid fields in XAML, please refer to the following tutorial: How to: Bind a PivotGrid to an MS Access Database.
using System.Data;
using System.Data.OleDb;
using System.Windows;
using DevExpress.Xpf.PivotGrid;
namespace HowToBindToMDB {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e) {
// Create a connection object.
OleDbConnection connection =
new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND.MDB");
// Create a data adapter.
OleDbDataAdapter adapter =
new OleDbDataAdapter("SELECT * FROM SalesPerson", connection);
// Create and fill a dataset.
DataSet sourceDataSet = new DataSet();
adapter.Fill(sourceDataSet, "SalesPerson");
// Assign the data source to the PivotGrid control.
pivotGridControl1.DataSource = sourceDataSet.Tables["SalesPerson"];
pivotGridControl1.DataProcessingEngine = DataProcessingEngine.Optimized;
pivotGridControl1.BeginUpdate();
// Create a row pivot grid field bound to the Country data source column.
PivotGridField fieldCountry = new PivotGridField();
fieldCountry.Caption = "Country";
fieldCountry.Area = FieldArea.RowArea;
DataSourceColumnBinding countryBinding = new DataSourceColumnBinding("Country");
fieldCountry.DataBinding = countryBinding;
// Create a row pivot grid field bound to the Sales Person data source column.
PivotGridField fieldCustomer = new PivotGridField();
fieldCustomer.Caption = "Customer";
fieldCustomer.Area = FieldArea.RowArea;
DataSourceColumnBinding customerBinding = new DataSourceColumnBinding("Sales Person");
fieldCustomer.DataBinding = customerBinding;
// Create a column pivot grid field bound to the OrderDate data source column.
PivotGridField fieldYear = new PivotGridField();
fieldYear.Caption = "Year";
fieldYear.Area = FieldArea.ColumnArea;
DataSourceColumnBinding fieldOrderDate1Binding = new DataSourceColumnBinding("OrderDate");
fieldOrderDate1Binding.GroupInterval = FieldGroupInterval.DateYear;
fieldYear.DataBinding = fieldOrderDate1Binding;
// Create a column pivot grid field bound to the CategoryName data source column.
PivotGridField fieldCategoryName = new PivotGridField();
fieldCategoryName.Caption = "Product Category";
fieldCategoryName.Area = FieldArea.ColumnArea;
DataSourceColumnBinding categoryNameBinding = new DataSourceColumnBinding("CategoryName");
fieldCategoryName.DataBinding = categoryNameBinding;
// Create a filter pivot grid field bound to the ProductName data source column.
PivotGridField fieldProductName = new PivotGridField();
fieldProductName.Caption = "Product Name";
fieldProductName.Area = FieldArea.FilterArea;
DataSourceColumnBinding productNameBinding = new DataSourceColumnBinding("ProductName");
fieldProductName.DataBinding = productNameBinding;
// Create a data pivot grid field bound to the 'Extended Price' data source column.
PivotGridField fieldExtendedPrice = new PivotGridField();
fieldExtendedPrice.Area = FieldArea.DataArea;
DataSourceColumnBinding extendedPriceBinding = new DataSourceColumnBinding("Extended Price");
fieldExtendedPrice.DataBinding = extendedPriceBinding;
// Specify the formatting setting to format summary values as integer currency amount.
fieldExtendedPrice.CellFormat = "c0";
// Add the fields to the control's field collection.
pivotGridControl1.Fields.AddRange(fieldCountry, fieldCustomer,
fieldCategoryName, fieldProductName, fieldYear, fieldExtendedPrice);
// Arrange the row fields within the Row Header Area.
fieldCountry.AreaIndex = 0;
fieldCustomer.AreaIndex = 1;
// Arrange the column fields within the Column Header Area.
fieldCategoryName.AreaIndex = 0;
fieldYear.AreaIndex = 1;
pivotGridControl1.EndUpdate();
}
}
}
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows
Imports DevExpress.Xpf.PivotGrid
Namespace HowToBindToMDB
Public Partial Class MainWindow
Inherits Window
Public Sub New()
Me.InitializeComponent()
End Sub
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Create a connection object.
Dim connection As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NWIND.MDB")
' Create a data adapter.
Dim adapter As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM SalesPerson", connection)
' Create and fill a dataset.
Dim sourceDataSet As DataSet = New DataSet()
adapter.Fill(sourceDataSet, "SalesPerson")
' Assign the data source to the PivotGrid control.
Me.pivotGridControl1.DataSource = sourceDataSet.Tables("SalesPerson")
Me.pivotGridControl1.DataProcessingEngine = DataProcessingEngine.Optimized
Me.pivotGridControl1.BeginUpdate()
' Create a row pivot grid field bound to the Country data source column.
Dim fieldCountry As PivotGridField = New PivotGridField()
fieldCountry.Caption = "Country"
fieldCountry.Area = FieldArea.RowArea
Dim countryBinding As DataSourceColumnBinding = New DataSourceColumnBinding("Country")
fieldCountry.DataBinding = countryBinding
' Create a row pivot grid field bound to the Sales Person data source column.
Dim fieldCustomer As PivotGridField = New PivotGridField()
fieldCustomer.Caption = "Customer"
fieldCustomer.Area = FieldArea.RowArea
Dim customerBinding As DataSourceColumnBinding = New DataSourceColumnBinding("Sales Person")
fieldCustomer.DataBinding = customerBinding
' Create a column pivot grid field bound to the OrderDate data source column.
Dim fieldYear As PivotGridField = New PivotGridField()
fieldYear.Caption = "Year"
fieldYear.Area = FieldArea.ColumnArea
Dim fieldOrderDate1Binding As DataSourceColumnBinding = New DataSourceColumnBinding("OrderDate")
fieldOrderDate1Binding.GroupInterval = FieldGroupInterval.DateYear
fieldYear.DataBinding = fieldOrderDate1Binding
' Create a column pivot grid field bound to the CategoryName data source column.
Dim fieldCategoryName As PivotGridField = New PivotGridField()
fieldCategoryName.Caption = "Product Category"
fieldCategoryName.Area = FieldArea.ColumnArea
Dim categoryNameBinding As DataSourceColumnBinding = New DataSourceColumnBinding("CategoryName")
fieldCategoryName.DataBinding = categoryNameBinding
' Create a filter pivot grid field bound to the ProductName data source column.
Dim fieldProductName As PivotGridField = New PivotGridField()
fieldProductName.Caption = "Product Name"
fieldProductName.Area = FieldArea.FilterArea
Dim productNameBinding As DataSourceColumnBinding = New DataSourceColumnBinding("ProductName")
fieldProductName.DataBinding = productNameBinding
' Create a data pivot grid field bound to the 'Extended Price' data source column.
Dim fieldExtendedPrice As PivotGridField = New PivotGridField()
fieldExtendedPrice.Area = FieldArea.DataArea
Dim extendedPriceBinding As DataSourceColumnBinding = New DataSourceColumnBinding("Extended Price")
fieldExtendedPrice.DataBinding = extendedPriceBinding
' Specify the formatting setting to format summary values as integer currency amount.
fieldExtendedPrice.CellFormat = "c0"
' Add the fields to the control's field collection.
Me.pivotGridControl1.Fields.AddRange(fieldCountry, fieldCustomer, fieldCategoryName, fieldProductName, fieldYear, fieldExtendedPrice)
' Arrange the row fields within the Row Header Area.
fieldCountry.AreaIndex = 0
fieldCustomer.AreaIndex = 1
' Arrange the column fields within the Column Header Area.
fieldCategoryName.AreaIndex = 0
fieldYear.AreaIndex = 1
Me.pivotGridControl1.EndUpdate()
End Sub
Run the project and see the result:
The following code snippets (auto-collected from DevExpress Examples) contain references to the PivotGridField class.
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.
wpf-pivotgrid-customize-filter-drop-down/CS/WpfPivotCustomFilterDropDownExample/MainWindow.xaml#L47
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField
Area="DataArea"
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField
x:Name="fieldSales"
wpf-pivotgrid-hide-column-totals/CS/HowToBindToMDB/MainWindow.xaml#L13
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField Name="fieldOrderID" Area="RowArea">
<dxpg:PivotGridField.DataBinding>
wpf-pivotgrid-how-to-display-underlying-data/CS/WpfDrillDownDataSourceExample/MainWindow.xaml#L33
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField
x:Name="fieldSales"
<dxpg:PivotGridControl.Fields>
<dxpg:PivotGridField Area="RowArea"
Name="fieldCountry" AreaIndex="0">
Object DispatcherObject DependencyObject ContentElement FrameworkContentElement DXFrameworkContentElement PivotGridField
See Also