Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo mostra como filtrar dados em uma exibição.
Exemplo
Para criar um filtro, defina um método que forneça a lógica de filtragem. O método é usado como um retorno de chamada e aceita um parâmetro do tipo object. O método a seguir retorna todos os Order objetos com a filled propriedade definida como "Não", filtrando o restante dos objetos.
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
Em seguida, você pode aplicar o filtro, conforme mostrado no exemplo a seguir. Neste exemplo, myCollectionView é um ListCollectionView objeto.
myCollectionView.Filter = new Predicate<object>(Contains);
Me.myCollectionView.Filter = New Predicate(Of Object)(AddressOf Me.Contains)
Para desfazer a filtragem, você pode definir a Filter propriedade como null:
myCollectionView.Filter = null;
Me.myCollectionView.Filter = Nothing
Para obter informações sobre como criar ou obter uma exibição, consulte Obter a exibição padrão de uma coleção de dados. Para obter o exemplo completo, consulte Classificação e filtragem de itens em um exemplo de exibição.
Se o objeto de exibição for proveniente de um CollectionViewSource objeto, você aplicará a lógica de filtragem definindo um manipulador de eventos para o Filter evento. No exemplo a seguir, listingDataView é uma instância de CollectionViewSource.
listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);
AddHandler listingDataView.Filter, AddressOf ShowOnlyBargainsFilter
O texto a seguir mostra a implementação do manipulador de eventos para o filtro ShowOnlyBargainsFilter de exemplo. Esse manipulador de eventos usa a Accepted propriedade para filtrar AuctionItem objetos que têm um CurrentPrice valor igual ou superior a US$ 25.
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
Consulte também
- CanFilter
- CustomFilter
- Visão Geral do Data Binding
- Classificar dados em uma visualização
- Tópicos "Como Fazer"
.NET Desktop feedback