Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Beispiel wird gezeigt, wie Daten in einer Ansicht gefiltert werden.
Beispiel
Um einen Filter zu erstellen, definieren Sie eine Methode, die die Filterlogik bereitstellt. Die Methode wird als Rückruf verwendet und akzeptiert einen Parameter vom Typ object. Die folgende Methode gibt alle Order Objekte zurück, wobei die filled-Eigenschaft auf "Nein" festgelegt ist und die restlichen Objekte herausfiltert.
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
Anschließend können Sie den Filter anwenden, wie im folgenden Beispiel gezeigt. In diesem Beispiel ist myCollectionView ein ListCollectionView-Objekt.
myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)
Um die Filterung rückgängig zu machen, können Sie die eigenschaft Filter auf nullfestlegen:
myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing
Informationen zum Erstellen oder Abrufen einer Ansicht finden Sie unter Abrufen der Standardansicht einer Datensammlung. Das vollständige Beispiel finden Sie unter Sortieren und Filtern von Elementen in einem Ansichtsbeispiel.
Wenn Ihr Ansichtsobjekt von einem CollectionViewSource-Objekt stammt, wenden Sie filterlogik an, indem Sie einen Ereignishandler für das Filter-Ereignis festlegen. Im folgenden Beispiel ist listingDataView eine Instanz von CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter
Nachfolgend sehen Sie die Implementierung des beispielhaften ShowOnlyBargainsFilter-Filterereignishandlers. Dieser Ereignishandler verwendet die Accepted-Eigenschaft zum Filtern von AuctionItem-Objekten, bei denen CurrentPrice $25 oder mehr beträgt.
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 auch
.NET Desktop feedback