Represents a Row filter. Can be used with anonymous methods.
Namespace: Dapfor.Wpf.UtilsAssembly: Dapfor.Wpf (in Dapfor.Wpf.dll) Version: 4.1.0.26317 (4.1.0.26317)
Syntax
C# |
---|
public class Filter : IFilter |
Visual Basic |
---|
Public Class Filter Implements IFilter |
Visual C++ |
---|
public ref class Filter : IFilter |
F# |
---|
type Filter = class interface IFilter end |
Remarks
Demonstrates how to set and use the filter
Copy | |
---|---|
//Some data object public class Product : INotifyPropertyChanged { private double _price; public double Price { get { return _price; } set { //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(); grid.Rows.Add(product1); grid.Rows.Add(product2); //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; } |