Vorgehensweise: Filtern von Daten in einer AnsichtHow to: Filter Data in a View

Dieses Beispiel zeigt, wie Sie Daten in einer Ansicht zu filtern.This example shows how to filter data in a view.

BeispielExample

Um einen Filter zu erstellen, definieren Sie eine Methode, die Filterlogik bereitstellt.To create a filter, define a method that provides the filtering logic. Die Methode, die als Rückruf verwendet wird, und akzeptiert einen Parameter vom Typ object.The method is used as a callback and accepts a parameter of type object. Die folgende Methode gibt alle der Order Objekte mit der filled -Eigenschaft auf "Nein" können die restlichen Objekte filtern.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

Sie können dann den Filter anwenden, wie im folgenden Beispiel gezeigt.You can then apply the filter, as shown in the following example. In diesem Beispiel myCollectionView ist eine ListCollectionView Objekt.In this example, myCollectionView is a ListCollectionView object.

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

Um die Filterung rückgängig zu machen, Sie können festlegen, die Filter Eigenschaft null:To undo filtering, you can set the Filter property to null:

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

Weitere Informationen zum Erstellen oder eine Ansicht zu erhalten, finden Sie unter Abrufen der Standardansicht einer datenauflistung.For information about how to create or obtain a view, see Get the Default View of a Data Collection. Das vollständige Beispiel finden Sie unter sortieren und Filtern von Elementen in einem Beispiel für die Ansicht.For the complete example, see Sorting and Filtering Items in a View Sample.

Wenn Ihr Objekt stammt eine CollectionViewSource -Objekts können Sie Filterlogik anwenden, indem Sie einen Ereignishandler für das Festlegen der Filter Ereignis.If your view object comes from a CollectionViewSource object, you apply filtering logic by setting an event handler for the Filter event. Im folgenden Beispiel listingDataView ist eine Instanz der CollectionViewSource.In the following example, listingDataView is an instance of CollectionViewSource.

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

Das folgende Beispiel zeigt die Implementierung des Beispiels ShowOnlyBargainsFilter Filter-Ereignishandler.The following shows the implementation of the example ShowOnlyBargainsFilter filter event handler. Dieser Ereignishandler verwendet die Accepted Eigenschaft filtern, die AuctionItem Objekte mit einer CurrentPrice von 25 $ oder höher.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

Siehe auchSee also