Skip to main content
Tag

ColumnBase.FilterPopupMode Property

Gets or sets the display mode of the column’s Drop-Down Filter. This is a dependency property.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v22.1.Core.dll

NuGet Package: DevExpress.Wpf.Grid.Core

Declaration

public FilterPopupMode FilterPopupMode { get; set; }

Property Value

Type Description
FilterPopupMode

A FilterPopupMode enumeration value that specifies the display mode of the column’s drop-down filter.

Available values:

Show 11 items
Name Description
Default

ExcelSmart starting with v19.2.

In previous versions, DateSmart for date-time columns, and List for other columns.

List

A regular list of items (one item at a time can be selected).

CheckedList

A checked list. Multiple items can be selected/checked simultaneously.

Custom

A drop-down filter is represented by a custom template assigned to the ColumnBase.CustomColumnFilterPopupTemplate property.

Date

This mode is equivalent to DateSmart regarding the appearance of the drop-down filter. The drop-down filter displays all the available check boxes, even if there is no data that falls into a corresponding date range.

DateAlt

This mode is equivalent to DateSmart, but with a different set of filters: Today, This week, This month, Next month, etc.

  • Beyond - Dates that belong to the month in three months time and beyond.
  • Earlier - Dates that belong to the month seven months ago and earlier.
DateSmart

A built-in calendar plus check boxes to select common non-intersecting date intervals.

The available date ranges for the DateSmart and Date modes:

  • Beyond this year - Dates that follow the current year.
  • Later this year - Dates of the current year starting from the following month.
  • Later this month - Dates of the current month that follow the next week.
  • Next week - Dates that belong to the following week.
  • Later this week - Dates of the current week starting from the day after tomorrow.
  • Tomorrow - Tomorrow.
  • Today - Today.
  • Yesterday - Yesterday.
  • Earlier this week - Dates of the current week that are prior to yesterday.
  • Last week - Dates of the previous week.
  • Earlier this year - Dates of the current year that are prior to the current month.
  • Prior to this year - Dates that are prior to the current year.

If there is no underlying data that would fall into a specific date range, the corresponding check box is hidden. If all values in the date-time column are set to null, all check boxes are visible.

DateCompact

A date-time drop-down filter without predefined values.

Excel

An Excel-style Drop-down Filter (previous).

ExcelSmart

An Excel-style Drop-down Filter (new; works starting with v18.2).

Disabled

Hides the Show Drop-down Filter button Show Drop-down Filter Button.

Disabled Filter Popup

Remarks

v19.2 and later use the Excel-style Drop-down Filter by default.

To use the previous drop-down filter:

 

Drop-Down Filter Display Mode

FilterPopupMode Value

an Excel style drop-down filter

FilterPopupMode.Excel (previous)

FilterPopupMode.ExcelSmart (new; works starting with v18.2)

a regular list of items (one item at a time can be selected)

FilterPopupMode.List

a checked list (multiple items can be selected/checked simultaneously)

FilterPopupMode.CheckedList

a calendar (for date-time columns)

FilterPopupMode.Date

FilterPopupMode.DateAlt

FilterPopupMode.DateCompact

FilterPopupMode.DateSmart

Examples

To create a custom drop-down filter:

Example 1

The following code sample demonstrates how to create a custom drop-down filter for the Index column:

HowToCreateACustomDropDownFilter

View Example: Create a Custom Drop-down Filter

<Window.Resources>
    <local:IntToCriteriaOperatorConverter x:Key="IntToCriteriaConverter"/>
</Window.Resources>
<dxg:GridControl x:Name="grid">
    <dxg:GridColumn FieldName="Index" FilterPopupMode="Custom">
        <dxg:GridColumn.CustomColumnFilterPopupTemplate>
            <DataTemplate>
                <StackPanel>
                    <Label Content="Minimum Index:" Margin="5"/>
                    <dxe:TrackBarEdit Minimum="0" Maximum="100" 
                                      Width="200" Margin="10" 
                                      TickFrequency="10" TickItemDisplayMode="TickAndText" TickPlacement="BottomRight" 
                                      EditValue="{Binding Path=CustomColumnFilter, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource IntToCriteriaConverter}}"/>
                </StackPanel>
            </DataTemplate>
        </dxg:GridColumn.CustomColumnFilterPopupTemplate>
    </dxg:GridColumn>
    <dxg:GridControl.View>
        <dxg:TableView AutoWidth="True"/>
    </dxg:GridControl.View>
</dxg:GridControl>
public class IntToCriteriaOperatorConverter : IValueConverter {
    object IValueConverter.Convert(object value, Type targetType, 
            object parameter, System.Globalization.CultureInfo culture) {
        BinaryOperator binaryOperator = value as BinaryOperator;
        if (ReferenceEquals(binaryOperator, null))
            return null;
        OperandValue operandValue = binaryOperator.RightOperand as OperandValue;
        return operandValue.Value;
    }
    object IValueConverter.ConvertBack(object value, Type targetType,
            object parameter, System.Globalization.CultureInfo culture) {
        return new BinaryOperator("Index", Convert.ToInt32(value), BinaryOperatorType.GreaterOrEqual);
    }
}

Example 2

Run Demo: Custom Filter Popup Content

The following code sample uses the RangeFilterElement as a custom data template:

<dxg:GridControl x:Name="grid" ItemsSource="...">
    <dxg:GridControl.Columns>
        <!-- -->
        <dxg:GridColumn FieldName="Quantity">
            <dxg:GridColumn.CustomColumnFilterPopupTemplate>
                <DataTemplate>
                    <dxfui:RangeFilterElement x:Name="PART_FilterElement"/>
                </DataTemplate>
            </dxg:GridColumn.CustomColumnFilterPopupTemplate>
        </dxg:GridColumn>
        <!-- -->
    </dxg:GridControl.Columns>
    <dxg:GridControl.View>
        <dxg:TableView ColumnFilterPopupMode="ExcelSmart" />
    </dxg:GridControl.View>
</dxg:GridControl> 
See Also