Back to Devexpress

PivotGridField.SortOrder Property

wpf-devexpress-dot-xpf-dot-pivotgrid-dot-pivotgridfield-69755414.md

latest6.3 KB
Original Source

PivotGridField.SortOrder Property

Gets or sets the field sort order. This is a dependency property.

Namespace : DevExpress.Xpf.PivotGrid

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

NuGet Package : DevExpress.Wpf.PivotGrid

Declaration

csharp
public FieldSortOrder SortOrder { get; set; }
vb
Public Property SortOrder As FieldSortOrder

Property Value

TypeDescription
FieldSortOrder

A FieldSortOrder enumeration member that specifies the field sort order.

|

Available values:

NameDescription
Ascending

Sorts the field in ascending order.

| | Descending |

Sorts the field in descending order.

|

Remarks

Data within the PivotGridControl is always sorted against fields displayed within Column Header Area and Row Header Area (by default, in ascending order). Use the SortOrder property of these fields to change the current sort order. For other fields, changing the SortOrder property value has no effect on data representation, until these fields are placed within the Column Header Area or Row Header Area.

You can also use the PivotGridField.ChangeSortOrder (synchronous) and PivotGridControl.ChangeFieldSortOrderAsync (asynchronous) methods to toggle a field sort order.

Note

The SortOrder property is not in effect for the excel-style pop-up filter.

When the field sort order is changed, the PivotGridControl.GridLayout event occurs.

To implement custom sorting, handle the PivotGridControl.CustomFieldSort event.

Example

This example shows how to sort data by Grand Total values.

In this example, values of the Sales Person field are sorted by the Grand Total column. To do this, the data field by whose values the sorting should be performed (the Order Amount field) is assigned to the Sales Person field’s PivotGridField.SortByField property.

xaml
<Window x:Class="HowToBindToMDB.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dxpg="http://schemas.devexpress.com/winfx/2008/xaml/pivotgrid"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <dxpg:PivotGridControl HorizontalAlignment="Left" Name="pivotGridControl1" 
                               VerticalAlignment="Top">
            <dxpg:PivotGridControl.Fields>
                <dxpg:PivotGridField Name="fieldMonth" FieldName="OrderDate" Area="RowArea"
                                     Caption="Order Month" GroupInterval="DateMonth" />
                <dxpg:PivotGridField Name="fieldSalesPerson" FieldName="Sales Person" Area="RowArea"
                                     SortByField="{Binding ElementName=fieldOrderAmount}"
                                     Caption="Sales Person" SortOrder="Descending"/>                
                <dxpg:PivotGridField Name="fieldOrderAmount" FieldName="Extended Price" Area="DataArea"
                                     Caption="Order Amount" CellFormat="c0" />
            </dxpg:PivotGridControl.Fields>
        </dxpg:PivotGridControl>
    </Grid>
</Window>

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

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-pivot-grid-show-top-n-values-in-context-menu/CS/ContextMenuToShowTopN_Example/MainWindow.xaml.cs#L80

csharp
valueItem.PivotGrid.GetFieldsByArea(valueItem.IsColumn ? FieldArea.RowArea : FieldArea.ColumnArea).ForEach(f => {
    f.SortOrder = FieldSortOrder.Descending;
    f.SortByField = valueItem.DataField;

wpf-pivot-grid-show-top-n-values-in-context-menu/VB/ContextMenuToShowTopN_Example/MainWindow.xaml.vb#L77

vb
valueItem.PivotGrid.GetFieldsByArea(If(valueItem.IsColumn, FieldArea.RowArea, FieldArea.ColumnArea)).ForEach(Sub(f)
    f.SortOrder = FieldSortOrder.Descending
    f.SortByField = valueItem.DataField

See Also

Area

GridLayout

PivotGridField Class

PivotGridField Members

DevExpress.Xpf.PivotGrid Namespace