[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Expand]Controls and Libraries
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Charts.Designer
  [Expand]DevExpress.Data
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.UI.Interactivity
  [Expand]DevExpress.Mvvm.UI.ModuleInjection
  [Expand]DevExpress.Xpf.Accordion
  [Expand]DevExpress.Xpf.Bars
  [Expand]DevExpress.Xpf.Carousel
  [Expand]DevExpress.Xpf.Charts
  [Expand]DevExpress.Xpf.Charts.Localization
  [Expand]DevExpress.Xpf.Charts.RangeControlClient
  [Expand]DevExpress.Xpf.ChunkList
  [Expand]DevExpress.Xpf.Controls
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Core.ConditionalFormatting
  [Expand]DevExpress.Xpf.Core.DataSources
  [Expand]DevExpress.Xpf.Core.FilteringUI
  [Expand]DevExpress.Xpf.Core.ServerMode
  [Expand]DevExpress.Xpf.Data
  [Expand]DevExpress.Xpf.DataAccess
  [Expand]DevExpress.Xpf.DataAccess.DataSourceWizard
  [Expand]DevExpress.Xpf.Diagram
  [Expand]DevExpress.Xpf.Dialogs
  [Expand]DevExpress.Xpf.Docking
  [Expand]DevExpress.Xpf.Docking.Base
  [Expand]DevExpress.Xpf.DocumentViewer
  [Expand]DevExpress.Xpf.DXBinding
  [Expand]DevExpress.Xpf.Editors
  [Expand]DevExpress.Xpf.Editors.DataPager
  [Expand]DevExpress.Xpf.Editors.DateNavigator
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor.Native
  [Expand]DevExpress.Xpf.Editors.Filtering
  [Expand]DevExpress.Xpf.Editors.Flyout
  [Expand]DevExpress.Xpf.Editors.Flyout.Native
  [Expand]DevExpress.Xpf.Editors.Helpers
  [Expand]DevExpress.Xpf.Editors.Native
  [Expand]DevExpress.Xpf.Editors.Popups
  [Expand]DevExpress.Xpf.Editors.RangeControl
  [Expand]DevExpress.Xpf.Editors.Settings
  [Expand]DevExpress.Xpf.Editors.Validation
  [Expand]DevExpress.Xpf.ExpressionEditor
  [Expand]DevExpress.Xpf.Gantt
  [Expand]DevExpress.Xpf.Gauges
  [Expand]DevExpress.Xpf.Gauges.Localization
  [Expand]DevExpress.Xpf.Grid
  [Expand]DevExpress.Xpf.Grid.ConditionalFormatting
  [Expand]DevExpress.Xpf.Grid.LookUp
  [Expand]DevExpress.Xpf.Grid.TreeList
  [Expand]DevExpress.Xpf.Layout.Core
  [Expand]DevExpress.Xpf.LayoutControl
  [Expand]DevExpress.Xpf.Map
  [Expand]DevExpress.Xpf.NavBar
  [Expand]DevExpress.Xpf.Navigation
  [Expand]DevExpress.Xpf.PdfViewer
  [Collapse]DevExpress.Xpf.PivotGrid
    AllowHideFieldsType Enumeration
    AsyncCompletedHandler Delegate
   [Expand]AsyncOperationResult Class
   [Expand]CellElement Class
   [Expand]CellElementData Class
   [Expand]CellInfo Class
   [Expand]ColorScaleFormatCondition Class
    CopyCollapsedValuesMode Enumeration
    CopyMultiSelectionMode Enumeration
   [Expand]CustomPrefilterDisplayTextEventArgs Class
    CustomPrefilterDisplayTextEventHandler Delegate
   [Expand]CustomServerModeSortEventArgs Class
   [Expand]DataAreaElement Class
   [Expand]DataAreaElementData Class
   [Expand]DataBarFormatCondition Class
    DataFieldArea Enumeration
    DataProcessingEngine Enumeration
   [Expand]DefaultMenuItemNames Class
   [Expand]EventArgsToCellInfoConverter Class
   [Expand]EventArgsToFieldValueInfoConverter Class
   [Expand]ExpressionConditionBase Class
    FieldAllowedAreas Enumeration
    FieldArea Enumeration
    FieldBestFitArea Enumeration
    FieldColumnTotalsLocation Enumeration
    FieldFilterType Enumeration
   [Expand]FieldFilterValues Class
    FieldGroupInterval Enumeration
    FieldListAllowedLayouts Enumeration
    FieldListArea Enumeration
   [Expand]FieldListControlBase Class
    FieldListLayout Enumeration
    FieldListOrientation Enumeration
    FieldListStyle Enumeration
    FieldOLAPFilterUsingWhereClause Enumeration
    FieldPropertyName Enumeration
    FieldRowTotalsLocation Enumeration
    FieldSortBySummaryOrder Enumeration
    FieldSortLocation Enumeration
    FieldSortMode Enumeration
    FieldSortOrder Enumeration
    FieldSummaryDisplayType Enumeration
    FieldSummaryType Enumeration
    FieldTopValueMode Enumeration
    FieldTopValueType Enumeration
    FieldTotalsVisibility Enumeration
    FieldUnboundColumnType Enumeration
    FieldUnboundExpressionMode Enumeration
   [Expand]FieldValueCell Class
   [Expand]FieldValueElement Class
   [Expand]FieldValueElementData Class
   [Expand]FieldValueInfo Class
    FieldValueType Enumeration
   [Expand]FormatCondition Class
   [Expand]FormatConditionBase Class
   [Expand]FormatConditionCollection Class
   [Expand]FormatConditionCommandParameters Class
   [Expand]GroupChangedEventArgs Class
    GroupChangedEventHandler Delegate
    GroupChangeType Enumeration
    GroupFilterMode Enumeration
   [Expand]GroupFilterValue Class
   [Expand]GroupFilterValues Class
   [Expand]GroupFilterValuesCollection Class
   [Expand]IconSetFormatCondition Class
   [Expand]IndicatorFormatConditionBase Class
   [Expand]IThreadSafeField Interface
   [Expand]LightweightCellElement Class
   [Expand]LightweightFieldValueElement Class
    OlapDataProvider Enumeration
   [Expand]PivotBrushChangedEventArgs Class
    PivotBrushChangedEventHandler Delegate
    PivotBrushType Enumeration
   [Expand]PivotCellBaseEventArgs Class
   [Expand]PivotCellDisplayTextEventArgs Class
    PivotCellDisplayTextEventHandler Delegate
   [Expand]PivotCellEventArgs Class
    PivotCellEventHandler Delegate
   [Expand]PivotCellValueEventArgs Class
    PivotCellValueEventHandler Delegate
    PivotChartDataProvideMode Enumeration
    PivotChartDataProvidePriority Enumeration
   [Expand]PivotChartDataSourceRow Class
    PivotChartExportFieldValueMode Enumeration
    PivotChartFieldValuesProvideMode Enumeration
    PivotChartItemDataMember Enumeration
    PivotChartItemType Enumeration
   [Expand]PivotCustomCellAppearanceEventArgs Class
    PivotCustomCellAppearanceEventHandler Delegate
   [Expand]PivotCustomChartDataSourceDataEventArgs Class
    PivotCustomChartDataSourceDataEventHandler Delegate
   [Expand]PivotCustomChartDataSourceRowsEventArgs Class
    PivotCustomChartDataSourceRowsEventHandler Delegate
   [Expand]PivotCustomFieldDataEventArgs Class
    PivotCustomFieldDataEventHandler Delegate
   [Expand]PivotCustomFieldListSortEventArgs Class
   [Expand]PivotCustomFieldSortEventArgs Class
    PivotCustomFieldSortEventHandler Delegate
   [Expand]PivotCustomFieldValueCellsEventArgs Class
    PivotCustomFieldValueCellsEventHandler Delegate
   [Expand]PivotCustomFilterPopupItemsEventArgs Class
    PivotCustomFilterPopupItemsEventHandler Delegate
   [Expand]PivotCustomGroupIntervalEventArgs Class
    PivotCustomGroupIntervalEventHandler Delegate
   [Expand]PivotCustomSummaryEventArgs Class
    PivotCustomSummaryEventHandler Delegate
   [Expand]PivotCustomValueAppearanceEventArgs Class
    PivotCustomValueAppearanceEventHandler Delegate
    PivotDefaultMemberFields Enumeration
   [Expand]PivotDrillDownDataRow Class
   [Expand]PivotDrillDownDataSource Class
   [Expand]PivotExcelFieldListControl Class
   [Expand]PivotFieldAreaChangingEventArgs Class
    PivotFieldAreaChangingEventHandler Delegate
   [Expand]PivotFieldDisplayTextEventArgs Class
    PivotFieldDisplayTextEventHandler Delegate
   [Expand]PivotFieldEventArgs Class
    PivotFieldEventHandler Delegate
   [Expand]PivotFieldFilterChangingEventArgs Class
    PivotFieldFilterChangingEventHandler Delegate
   [Expand]PivotFieldListControl Class
   [Expand]PivotFieldPropertyChangedEventArgs Class
    PivotFieldPropertyChangedEventHandler Delegate
   [Expand]PivotFieldValueCancelEventArgs Class
    PivotFieldValueCancelEventHandler Delegate
   [Expand]PivotFieldValueEventArgs Class
    PivotFieldValueEventHandler Delegate
   [Expand]PivotFilterEditorEventArgs Class
    PivotFilterEditorEventHandler Delegate
   [Expand]PivotGridCellMenuInfo Class
   [Expand]PivotGridCommands Class
   [Collapse]PivotGridControl Class
     PivotGridControl Members
     PivotGridControl Constructor
    [Expand]PivotGridControl Properties
    [Collapse]PivotGridControl Events
      AsyncOperationCompleted Event
      AsyncOperationStarting Event
      BeforeLoadLayout Event
      BeginRefresh Event
      BrushChanged Event
      CellClick Event
      CellDoubleClick Event
      CellSelectionChanged Event
      CustomCellAppearance Event
      CustomCellDisplayText Event
      CustomCellValue Event
      CustomChartDataSourceData Event
      CustomChartDataSourceRows Event
      CustomFieldListSort Event
      CustomFieldSort Event
      CustomFieldValueCells Event
      CustomFilterPopupItems Event
      CustomGroupInterval Event
      CustomPrefilterDisplayText Event
      CustomServerModeSort Event
      CustomSummary Event
      CustomUnboundFieldData Event
      CustomValueAppearance Event
      DataSourceChanged Event
      EndRefresh Event
      FieldAreaChanged Event
      FieldAreaChanging Event
      FieldAreaIndexChanged Event
      FieldExpandedInGroupChanged Event
      FieldFilterChanged Event
      FieldFilterChanging Event
      FieldPropertyChanged Event
      FieldSizeChanged Event
      FieldUnboundExpressionChanged Event
      FieldValueCollapsed Event
      FieldValueCollapsing Event
      FieldValueDisplayText Event
      FieldValueExpanded Event
      FieldValueExpanding Event
      FieldValueNotExpanded Event
      FieldVisibleChanged Event
      FieldVisibleChanging Event
      FocusedCellChanged Event
      GridLayout Event
      GroupFilterChanged Event
      HiddenFieldList Event
      LayoutUpgrade Event
      OlapDataLoaded Event
      OlapException Event
      OlapQueryData Event
      OlapQueryTimeout Event
      PopupMenuShowing Event
      PrefilterCriteriaChanged Event
      PrefilterEditorCreated Event
      PrefilterEditorHiding Event
      PropertyChanged Event
      QueryException Event
      ShownFieldList Event
      UnboundExpressionEditorCreated Event
    [Expand]PivotGridControl Methods
   [Expand]PivotGridCsvExportOptions Class
   [Expand]PivotGridCustomTotal Class
   [Expand]PivotGridCustomTotalCollection Class
   [Expand]PivotGridField Class
   [Expand]PivotGridFieldCollection Class
   [Expand]PivotGridFieldValueMenuInfo Class
   [Expand]PivotGridFilterPopupMenuInfo Class
   [Expand]PivotGridGroup Class
   [Expand]PivotGridGroupCollection Class
   [Expand]PivotGridHeaderMenuInfo Class
   [Expand]PivotGridHeadersAreaMenuInfo Class
   [Expand]PivotGridMenuInfo Class
    PivotGridMenuType Enumeration
   [Expand]PivotGridXlsExportOptions Class
   [Expand]PivotGridXlsxExportOptions Class
   [Expand]PivotGroupEventArgs Class
    PivotGroupEventHandler Delegate
    PivotKpiGraphic Enumeration
    PivotKpiType Enumeration
   [Expand]PivotLayoutAllowEventArgs Class
    PivotLayoutAllowEventHandler Delegate
   [Expand]PivotLayoutUpgradeEventArgs Class
    PivotLayoutUpgradeEventHandler Delegate
   [Expand]PivotOlapExceptionEventArgs Class
    PivotOlapExceptionEventHandler Delegate
   [Expand]PivotOlapKpiMeasures Class
   [Expand]PivotOlapKpiValue Class
   [Expand]PivotOlapMember Class
   [Expand]PivotPropertyChangedEventArgs Class
    PivotPropertyChangedEventHandler Delegate
   [Expand]PivotQueryExceptionEventArgs Class
    PivotQueryExceptionEventHandler Delegate
   [Expand]PivotSerializationOptions Class
   [Expand]PivotSummaryDataRow Class
   [Expand]PivotSummaryDataSource Class
   [Expand]PivotUnboundExpressionEditorEventArgs Class
    PivotUnboundExpressionEditorEventHandler Delegate
   [Expand]PopupMenuShowingEventArgs Class
    PopupMenuShowingEventHandler Delegate
    ScrollingMode Enumeration
    SelectMode Enumeration
    ShowPrefilterPanelMode Enumeration
   [Expand]SortByCondition Class
   [Expand]SortByConditionCollection Class
    StoreLayoutMode Enumeration
   [Expand]TopBottomRuleFormatCondition Class
    UnboundExpressionMode Enumeration
    UseLightweightTemplates Enumeration
    UserAction Enumeration
  [Expand]DevExpress.Xpf.PivotGrid.Printing
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpf.Printing.Parameters
  [Expand]DevExpress.Xpf.Printing.Parameters.Models
  [Expand]DevExpress.Xpf.Printing.PreviewControl
  [Expand]DevExpress.Xpf.Printing.PreviewControl.Bars
  [Expand]DevExpress.Xpf.Prism
  [Expand]DevExpress.Xpf.PropertyGrid
  [Expand]DevExpress.Xpf.Reports.UserDesigner
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Extensions
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Localization
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard.Pages
  [Expand]DevExpress.Xpf.Ribbon
  [Expand]DevExpress.Xpf.RichEdit
  [Expand]DevExpress.Xpf.RichEdit.Menu
  [Expand]DevExpress.Xpf.Scheduler
  [Expand]DevExpress.Xpf.Scheduler.Drawing
  [Expand]DevExpress.Xpf.Scheduler.Menu
  [Expand]DevExpress.Xpf.Scheduler.Reporting
  [Expand]DevExpress.Xpf.Scheduler.UI
  [Expand]DevExpress.Xpf.Scheduling
  [Expand]DevExpress.Xpf.Scheduling.Editors
  [Expand]DevExpress.Xpf.Scheduling.Reporting
  [Expand]DevExpress.Xpf.Scheduling.Visual
  [Expand]DevExpress.Xpf.Scheduling.VisualData
  [Expand]DevExpress.Xpf.SpellChecker
  [Expand]DevExpress.Xpf.Spreadsheet
  [Expand]DevExpress.Xpf.Spreadsheet.Menu
  [Expand]DevExpress.Xpf.TreeMap
  [Expand]DevExpress.Xpf.Utils.Themes
  [Expand]DevExpress.Xpf.WindowsUI
  [Expand]DevExpress.Xpf.WindowsUI.Internal
  [Expand]DevExpress.Xpf.WindowsUI.Navigation
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Printing
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

PivotGridControl.CustomFieldSort Event

Provides the ability to sort data using custom rules.

Namespace:DevExpress.Xpf.PivotGrid
Assembly:DevExpress.Xpf.PivotGrid.v18.2.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type PivotCustomFieldSortEventArgs containing data related to this event.

The following PivotCustomFieldSortEventArgs properties provide information specific to this event.
Property Description
Field Gets the field whose values are being compared.
Handled Gets or sets whether a comparison operation is being handled and therefore no default processing is required.
ListSourceRowIndex1 Gets the index in the data source of the first of the two rows being compared.
ListSourceRowIndex2 Gets the index in the data source of the second of the two rows being compared.
Result Gets or sets the result of a custom comparison.
SortLocation Gets a target UI element to whose values sorting is applied.
SortOrder Gets the sort order applied to the field.
ThreadSafeField Gets the field whose values are being compared. Provides read-only access to field settings.
Value1 Gets the first value being compared.
Value2 Gets the second value being compared.

Expanded Remarks

Handle the CustomFieldSort event to provide a custom sorting algorithm for a specific field. Note that the PivotGridField.SortMode property of this field should be set to FieldSortMode.Custom to apply custom sorting. Otherwise, the CustomFieldSort event will not be raised.

The CustomFieldSort event fires for pairs of rows in the underlying data source, before data is grouped according to the layout of column and row fields. The PivotCustomFieldSortEventArgs.ListSourceRowIndex1 and PivotCustomFieldSortEventArgs.ListSourceRowIndex2 parameters identify the indexes of the rows. The field being processed is specified by the PivotCustomFieldSortEventArgs.Field parameter. The field's values in these rows are specified by the PivotCustomFieldSortEventArgs.Value1 and PivotCustomFieldSortEventArgs.Value2 parameters.

Important

Use the PivotCustomFieldSortEventArgs.ThreadSafeField property instead of PivotCustomFieldSortEventArgs.Field to access fields in the CustomFieldSort event handler when Asynchronous Mode is enabled.

In the event handler, you should compare these two values and assign the result to the PivotCustomFieldSortEventArgs.Result property as follows:

  • set Result to -1 if the first row should be positioned above the second row when data is sorted in ascending order. When data is sorted in descending order the first row will be positioned below the second row.
  • set Result to 1 if the first row should be positioned below the second row when data is sorted in ascending order. When data is sorted in descending order the first row will be positioned above the second row.
  • set Result to 0 to indicate that the rows are equal. In this case, the compared rows will be grouped into one field value.

If your comparison logic requires additional data from the underlying data source, use the PivotCustomFieldSortEventArgs.GetListSourceColumnValue method. This method allows you to obtain values from the data source by a column name and row index.

The PivotCustomFieldSortEventArgs.Handled parameter should be set to true if the current comparison operation was handled. You can leave this parameter set to false to invoke the default comparison mechanism after your event handler has finished. In the latter instance, the result of a custom comparison operation is ignored.

The CustomFieldSort event also fires to sort unique filter values in the Filter Drop-Down. Each filter value may correspond to multiple rows in the underlying data source. So, the event's ListSourceRowIndex1 and ListSourceRowIndex2 parameters cannot be used to identify underlying rows. They are set to -1 when comparing filter values in the Filter Drop-Down.

Note

Custom sorting is not supported in OLAP or server mode. To sort data in OLAP and server mode using custom algorithms, handle the CustomServerModeSort event.

Expanded See Also

Is this topic helpful?​​​​​​​