Comment : filtrer les données d'une vue
Cet exemple montre comment filtrer des données dans une vue.
Exemple
Pour créer un filtre, définissez une méthode qui fournit une logique de filtrage. La méthode est utilisée comme rappel et accepte un paramètre de type object. La méthode suivante retourne tous les objets dont la propriété Order filled a la valeur "Non", et filtre le reste des objets.
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");
}
Vous pouvez ensuite appliquer le filtre, comme illustré dans l'exemple suivant. Dans cet exemple, myCollectionView est un objet ListCollectionView.
myCollectionView.Filter = new Predicate<object>(Contains);
Pour annuler le filtrage, vous pouvez affecter la valeur null à la propriété Filter :
myCollectionView.Filter = null;
Pour plus d'informations sur la création ou l'obtention d'une vue, consultez Comment : obtenir la vue par défaut d'une collection de données. Pour obtenir l'exemple complet, consultez Tri et filtrage d'éléments dans une vue, exemple.
Si votre objet de vue provient d'un objet CollectionViewSource, vous pouvez appliquer la logique de filtrage en définissant un gestionnaire d'événements pour l'événement Filter. Dans l'exemple suivant, listingDataView est une instance de CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
L'exemple suivant illustre l'implémentation du gestionnaire d'événements de filtre ShowOnlyBargainsFilter. Ce gestionnaire d'événements utilise la propriété Accepted pour filtrer des objets AuctionItem dont le CurrentPrice est de $25 ou plus.
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;
}
}
}
Voir aussi
Tâches
Comment : trier des données dans une vue
Référence
Concepts
Vue d'ensemble de la liaison de données