FilterEditorControl.QueryOperators Event

Allows you to customize the operator list.

Namespace: DevExpress.Xpf.Core.FilteringUI

Assembly: DevExpress.Xpf.Grid.v21.2.dll


public event EventHandler<FilterEditorQueryOperatorsEventArgs> QueryOperators

Event Data

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

Property Description
DefaultOperator Gets or sets an operator that is selected when users create a new filter condition. Inherited from QueryOperatorsEventArgsBase<T>.
FieldName Gets a name of the field for which operators are queried. Inherited from QueryOperatorsEventArgsBase<T>.
Filter Gets the current filter criteria specified in the FilterEditorControl.
Operators Gets or sets the operators displayed in the operator list.


Run Demo: Filter Editor - Customize the Operator List

The Filter Editor shows a list of operators the selected field accepts. Use the QueryOperators event to customize the operator list.

The code sample below removes all operators except Equal and Not Equal:

<dxg:TableView x:Name="view">
            <dxfui:FilterEditorControl QueryOperators="OnQueryOperators" />
void OnQueryOperators(object sender, FilterEditorQueryOperatorsEventArgs e) {
    if(e.FieldName == "OrderDate") {
        e.Operators.Add(new FilterEditorOperatorItem(FilterEditorOperatorType.Equal));
        e.Operators.Add(new FilterEditorOperatorItem(FilterEditorOperatorType.NotEqual));

Custom Operators

You can use the QueryOperators event to add custom operators. The code sample below adds the Last Years operator:

  1. Create a custom function. Do one of the following:

    • Use the CustomFunctionFactory.Create method.

      The CustomFunctionFactory is an extension of the DevExpress.Xpf.Grid.v21.2.Extensions.dll library. Refer to c:\Program Files (x86)\DevExpress 21.2\Components\Sources\DevExpress.Xpf.Grid\DevExpress.Xpf.Grid.Extensions\ for information on how extension methods work.

      The CustomFunctionFactory.Create method allows you to create a custom function with a maximum of 4 operands.

    • Implement the ICustomFunctionOperator interface. Refer to the Implementing Custom Functions topic for more information.

    const string CustomFunctionName = "LastYears";
    var currentYear = DateTime.Now.Year;
    ICustomFunctionOperatorBrowsable customFunction = CustomFunctionFactory.Create(CustomFunctionName, 
        (DateTime date, int threshold) => {
            return currentYear >= date.Year && currentYear - date.Year <= threshold;
  2. Call the CriteriaOperator.RegisterCustomFunction method to register the custom function.

  3. Create the FilterEditorOperatorItem and add it to the FilterEditorQueryOperatorsEventArgs.Operators collection. Specify the operator item’s edit settings to define its operands:

    void OnQueryOperators(object sender, FilterEditorQueryOperatorsEventArgs e) {
        if(e.FieldName == "OrderDate") {
            // ...
            var customFunctionEditSettings = new BaseEditSettings[] { 
                new TextEditSettings { MaskType = MaskType.Numeric, Mask = "D", MaskUseAsDisplayFormat = true } 
            e.Operators.Add(new FilterEditorOperatorItem(CustomFunctionName, customFunctionEditSettings) { Caption = "Last Years" });
See Also