Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Procedura: filtrare i dati in una visualizzazione

 

Pubblicato: giugno 2016

In questo esempio viene illustrata la procedura per filtrare i dati in una visualizzazione.

Esempio

Per creare un filtro, definire un metodo che fornisca la logica di filtro. Il metodo viene utilizzato come callback e accetta un parametro di tipo object. Il metodo riportato di seguito restituisce tutti gli oggetti Order con la proprietà filled impostata su "No", filtrando i restanti oggetti.

È possibile quindi applicare il filtro, come illustrato nell'esempio seguente. In questo esempio, myCollectionView è un oggetto ListCollectionView.

Per rimuovere il filtro, è possibile impostare la proprietà Filter su null:

Per informazioni su come creare o ottenere una visualizzazione, vedere Procedura: ottenere la visualizzazione predefinita di una raccolta dati. Per l'esempio completo, vedere Esempio di ordinamento e filtro di elementi in una visualizzazione (la pagina potrebbe essere in inglese).

Se l'oggetto visualizzazione proviene da un oggettoCollectionViewSource, applicare la logica di filtro impostando un gestore eventi per l'evento Filter. Nell'esempio riportato di seguito, listingDataView è un'istanza di CollectionViewSource.

listingDataView.Filter += new FilterEventHandler(ShowOnlyBargainsFilter);

Nell'esempio seguente viene illustrata l'implementazione del gestore eventi del filtro ShowOnlyBargainsFilter di esempio. Questo gestore eventi utilizza la proprietà Accepted per filtrare gli oggetti AuctionItem con CurrentPrice pari a 25 dollari o superiore.

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;
        }
    }
}
Mostra: