Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Comment : filtrer les données d'une vue

 

Publication: juin 2016

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é Orderfilled a la valeur "Non", et filtre le reste des objets.

Vous pouvez ensuite appliquer le filtre, comme illustré dans l'exemple suivant. Dans cet exemple, myCollectionView est un objet ListCollectionView.

Pour annuler le filtrage, vous pouvez affecter la valeur null à la propriété Filter :

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;
        }
    }
}
Afficher: