Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du filtrerar data i en vy.
Exempel
Om du vill skapa ett filter definierar du en metod som tillhandahåller filtreringslogik. Metoden används som motringning och accepterar en parameter av typen object. Följande metod returnerar alla Order objekt med egenskapen filled inställd på "Nej" och filtrerar bort resten av objekten.
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
Du kan sedan använda filtret, som du ser i följande exempel. I det här exemplet är myCollectionView ett ListCollectionView objekt.
myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)
Om du vill ångra filtreringen kan du ange egenskapen Filter till null:
myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing
Information om hur du skapar eller hämtar en vy finns i Hämta standardvyn för en datainsamling. Det fullständiga exemplet finns i Sorterings- och filtreringsobjekt i ett visningsexempel.
Om visningsobjektet kommer från ett CollectionViewSource objekt använder du filtreringslogik genom att ange en händelsehanterare för Filter händelsen. I följande exempel är listingDataView en instans av CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter
Följande visar implementeringen av exemplet ShowOnlyBargainsFilter filterhändelsehanterare. Den här händelsehanteraren använder egenskapen Accepted för att filtrera bort AuctionItem objekt som har en CurrentPrice på 25 USD eller högre.
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
Se även
.NET Desktop feedback