Cómo: Filtrar datos en una vista
En este ejemplo se muestra cómo filtrar los datos en una vista.
Ejemplo
Para crear un filtro, se define un método que proporciona la lógica de filtrado. El método se utiliza como devolución de llamada y acepta un parámetro de tipo object. El método siguiente devuelve todos los objetos Order cuya propiedad filled está establecida en "No", y deja fuera el resto de los objetos.
Public Function Contains(ByVal de As Object) As Boolean
Dim order1 As Order = TryCast(de, Order)
Return (order1.Filled Is "No")
End Function
public bool Contains(object de)
{
Order order = de as Order;
//Return members whose Orders have not been filled
return(order.Filled== "No");
}
A continuación, puede aplicar el filtro, como se muestra en el ejemplo siguiente. En este ejemplo, myCollectionView es un objeto ListCollectionView.
myCollectionView.Filter = new Predicate<object>(Contains);
Para deshacer el filtrado, puede establecer la propiedad Filter en null:
myCollectionView.Filter = null;
Para obtener información acerca de cómo crear u obtener vistas, consulte Cómo: Obtener la vista predeterminada de una recolección de datos. Para obtener el ejemplo completo, vea Sorting and Filtering Items in a View Sample.
Si el objeto de vista procede de un objeto CollectionViewSource, la lógica de filtrado se aplica estableciendo un controlador para el evento Filter. En el ejemplo siguiente, listingDataView es una instancia de CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
En el ejemplo siguiente se muestra la implementación del controlador de eventos del filtro ShowOnlyBargainsFilter de ejemplo. Este controlador de eventos usa la propiedad Accepted para filtrar objetos AuctionItem que tienen un CurrentPrice de 25 $ o más.
private void ShowOnlyBargainsFilter(object sender, FilterEventArgs e)
{
AuctionItem product = e.Item as AuctionItem;
if (product != null)
{
// Filter out products with price 25 or above
if (product.CurrentPrice < 25)
{
e.Accepted = true;
}
else
{
e.Accepted = false;
}
}
}
Vea también
Tareas
Cómo: Ordenar datos en una vista
Referencia
Conceptos
Información general sobre el enlace de datos