An interface to filter Row objects in GridControl.

Namespace: Dapfor.Wpf.Controls
Assembly: Dapfor.Wpf (in Dapfor.Wpf.dll) Version: (


public interface IFilter
Visual Basic
Public Interface IFilter
Visual C++
public interface class IFilter
type IFilter =  interface end


Demonstrates how to set and use the filter
 Copy imageCopy
   //Some data object
   public class Product : INotifyPropertyChanged
       private double _price;
       public double Price
           get { return _price; }
               //If the price is not the same, change it and notify about price changing
               if (_price != value)
                   _price = value;
                   //The event can be raised from any thread. The grid will synchronize thread with GUI without blocking the calling thread.
                   //While painting, sorting or filtering the grid can ask this object in the GUI (!) thread to return the price value.
                   if (PropertyChanged != null)
                       PropertyChanged(this, new PropertyChangedEventArgs("Price"));
       public event PropertyChangedEventHandler PropertyChanged;

   public void HowToSetFilter(GridControl grid)
       //Set a filter that hides all rows, that contain products with price less than 10
       grid.Filter = new Filter(row =>
           //There are three ways to get price: 
           //1. From the Cell through the Value property, which returns a double value: row["Price"].Value
           //2. Through the IDataAccessor and IDataField: row.DataAccessor["Price"].Value
           //3. From the data object itself: ((Product)row.DataObject).Price
           if ((double) row["Price"].Value < 10)
               //Filter the row
               return true;
           //The row is not filtered
           return false;

    //Populate the grid
    Product product1 = new Product();
    Product product2 = new Product();


    //Update the product's price
    //Data objects will notify the Grid, and it will display only the product2. 
    //The product1 will be hidden
    product1.Price = 9;
    product2.Price = 11;

See Also