Comment : filtrer les données d'une vueHow to: Filter Data in a View

Cet exemple montre comment filtrer des données dans une vue.This example shows how to filter data in a view.

ExempleExample

Pour créer un filtre, définissez une méthode qui fournit la logique de filtrage.To create a filter, define a method that provides the filtering logic. La méthode est utilisée comme rappel et accepte un paramètre de type object.The method is used as a callback and accepts a parameter of type object. La méthode suivante retourne tous les objets Order avec la propriété filled définie sur « no », en filtrant le reste des objets.The following method returns all the Order objects with the filled property set to "No", filtering out the rest of the objects.

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

Vous pouvez ensuite appliquer le filtre, comme indiqué dans l’exemple suivant.You can then apply the filter, as shown in the following example. Dans cet exemple, myCollectionView est un objet ListCollectionView.In this example, myCollectionView is a ListCollectionView object.

myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)

Pour annuler le filtrage, vous pouvez définir la propriété Filter sur null:To undo filtering, you can set the Filter property to null:

myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing

Pour plus d’informations sur la création ou l’obtention d’une vue, consultez obtenir la vue par défaut d’une collection de données.For information about how to create or obtain a view, see Get the Default View of a Data Collection. Pour obtenir un exemple complet, consultez Tri et filtrage d’éléments dans un exemple d’affichage.For the complete example, see Sorting and Filtering Items in a View Sample.

Si votre objet de vue provient d’un objet CollectionViewSource, vous appliquez la logique de filtrage en définissant un gestionnaire d’événements pour l’événement Filter.If your view object comes from a CollectionViewSource object, you apply filtering logic by setting an event handler for the Filter event. Dans l’exemple suivant, listingDataView est une instance de CollectionViewSource.In the following example, listingDataView is an instance of CollectionViewSource.

listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter

L’exemple suivant illustre l’implémentation de l’exemple de gestionnaire d’événements ShowOnlyBargainsFilter Filter.The following shows the implementation of the example ShowOnlyBargainsFilter filter event handler. Ce gestionnaire d’événements utilise la propriété Accepted pour filtrer les objets AuctionItem ayant un CurrentPrice de $25 ou supérieur.This event handler uses the Accepted property to filter out AuctionItem objects that have a CurrentPrice of $25 or greater.

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

Voir aussiSee also