Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este ejemplo se muestra cómo filtrar los datos en una vista.
Ejemplo
Para crear un filtro, defina un método que proporcione la lógica de filtrado. El método se usa como devolución de llamada y acepta un parámetro de tipo object. El método siguiente devuelve todos los Order objetos con la filled propiedad establecida en "No", filtrando el resto de los objetos.
public bool Contains(object de)
{
Order order = de as Order;
//Return members whose Orders have not been filled
return(order.Filled== "No");
}
Public Function Contains(ByVal de As Object) As Boolean
Dim order1 As Order = TryCast(de, Order)
Return (order1.Filled Is "No")
End Function
A continuación, puede aplicar el filtro, como se muestra en el ejemplo siguiente. En este ejemplo, myCollectionView es un ListCollectionView objeto .
myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)
Para deshacer el filtrado, puede establecer la propiedad Filter en null:
myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing
Para obtener información sobre cómo crear o obtener una vista, vea Obtener la vista predeterminada de una colección de datos. Para obtener el ejemplo completo, vea Ordenar y filtrar elementos en un ejemplo de vista.
Si el objeto de vista procede de un CollectionViewSource objeto, se aplica lógica de filtrado estableciendo un controlador de eventos para el Filter evento. En el ejemplo siguiente, listingDataView es una instancia de CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter
A continuación se muestra la implementación del controlador de eventos de filtro de ejemplo ShowOnlyBargainsFilter . Este controlador de eventos usa la Accepted propiedad para filtrar AuctionItem los objetos que tienen un CurrentPrice valor de $25 o superior.
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;
}
}
}
Private Sub ShowOnlyBargainsFilter(ByVal sender As Object, ByVal e As FilterEventArgs)
Dim product As AuctionItem = CType(e.Item, AuctionItem)
If Not (product Is Nothing) Then
'Filter out products with price 25 or above
If product.CurrentPrice < 25 Then
e.Accepted = True
Else
e.Accepted = False
End If
End If
End Sub
Consulte también
.NET Desktop feedback