Back to Devexpress

SeriesBase.FilterCriteria Property

corelibraries-devexpress-dot-xtracharts-dot-seriesbase-94e3592e.md

latest7.3 KB
Original Source

SeriesBase.FilterCriteria Property

Gets or sets the current filter criteria.

Namespace : DevExpress.XtraCharts

Assembly : DevExpress.XtraCharts.v25.2.dll

NuGet Package : DevExpress.Charts

Declaration

csharp
[XtraChartsLocalizableCategory(XtraChartsCategory.Data)]
public CriteriaOperator FilterCriteria { get; set; }
vb
<XtraChartsLocalizableCategory(XtraChartsCategory.Data)>
Public Property FilterCriteria As CriteriaOperator

Property Value

TypeDescription
CriteriaOperator

The current filter criteria.

|

Remarks

Use the FilterCriteria property to create a filter expression that consists of multiple conditions applied to multiple data columns, and apply it to the series’ data. Setting the FilterCriteria property to a new value clears any filters that have been previously applied.

Note that the FilterCriteria and SeriesBase.FilterString properties are dependent. If you update one of them, the other changes as well.

Use a CriteriaOperator descendants to specify the FilterCriteria property. Refer to Criteria Operators for more information.

csharp
Series series = chartControl1.Series[0];
series.FilterCriteria = new BinaryOperator("CategoryID", 1, BinaryOperatorType.Equal) |
                        new BinaryOperator("CategoryID", 3, BinaryOperatorType.Equal) |
                        new BinaryOperator("CategoryID", 7, BinaryOperatorType.Equal);
vb
Dim series As Series = chartControl1.Series(0)
series.FilterCriteria = New BinaryOperator("CategoryID", 1, BinaryOperatorType.Equal) Or 
                        New BinaryOperator("CategoryID", 3, BinaryOperatorType.Equal) Or 
                        New BinaryOperator("CategoryID", 7, BinaryOperatorType.Equal)

Alternatively, you can use the SeriesBase.FilterString property to pass a filter expression. Refer to Criteria Language Syntax for more information.

csharp
Series series = chartControl1.Series[0];
series.FilterString = "CategoryID = 1 Or CategoryID = 3 Or CategoryID = 7";
vb
Dim series As Series = chartControl1.Series(0)
series.FilterString = "CategoryID = 1 Or CategoryID = 3 Or CategoryID = 7"

You can also use the CriteriaOperator.Parse method to convert a filter string to its CriteriaOperator equivalent as follows:

csharp
Series series = chartControl1.Series[0];
series.FilterCriteria = CriteriaOperator.Parse("CategoryID = 1 Or CategoryID = 3 Or CategoryID = 7");
vb
Dim series As Series = chartControl1.Series(0)
series.FilterCriteria = CriteriaOperator.Parse("CategoryID = 1 Or CategoryID = 3 Or CategoryID = 7")

Example

To filter a data series using a criteria that FilterControl provides, assign the FilterControl.FilterCriteria property value to the SeriesBase.FilterCriteria property.

csharp
private void Form1_Load(object sender, EventArgs e) {
    filterControl.SourceControl = Products;
    filterControl.FilterString = "Contains([CategoryName], 'Condiments')";

    ProductSeries.DataSource = Products;
    ProductSeries.ArgumentDataMember = "ProductName";
    ProductSeries.ValueDataMembers.AddRange("UnitPrice");
    ProductSeries.FilterCriteria = filterControl.FilterCriteria;
}

private void filterControl1_FilterChanged(object sender, DevExpress.XtraEditors.FilterChangedEventArgs e) {
    // Because of Filter Control recreates its FilterCriteria, 
    // the criteria should be reassigned to the SeriesBase.FilterCriteria property.
    ProductSeries.FilterCriteria = filterControl.FilterCriteria;
}
vb
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    filterControl.SourceControl = Products
    filterControl.FilterString = "Contains([CategoryName], 'Condiments')"

    ProductSeries.DataSource = Products
    ProductSeries.ArgumentDataMember = "ProductName"
    ProductSeries.ValueDataMembers.AddRange("UnitPrice")
    ProductSeries.FilterCriteria = filterControl.FilterCriteria
End Sub

Private Sub filterControl1_FilterChanged(ByVal sender As Object, ByVal e As DevExpress.XtraEditors.FilterChangedEventArgs) Handles filterControl.FilterChanged
    ' Because of Filter Control recreates its FilterCriteria, 
    ' the criteria should be reassigned to the SeriesBase.FilterCriteria property.
    ProductSeries.FilterCriteria = filterControl.FilterCriteria
End Sub

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the FilterCriteria 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.

winforms-chart-filter-a-chart-with-the-filtering-ui-context/CS/FilterCriteriaSample/Form1.cs#L29

csharp
filteringUIContext.ModelType = typeof(Product);
filteringUIContext.SetFilterCriteriaBinding(ProductSeries, s => s.FilterCriteria);
filteringUIContext.RetrieveFields();

winforms-chart-filter-a-chart-with-the-filtering-ui-context/VB/FilterCriteriaSample/Form1.vb#L37

vb
filteringUIContext.ModelType = GetType(Product)
filteringUIContext.SetFilterCriteriaBinding(ProductSeries, Function(s) s.FilterCriteria)
filteringUIContext.RetrieveFields()

See Also

Filter Series Data

How to: Filter Data

SeriesBase Class

SeriesBase Members

DevExpress.XtraCharts Namespace