Domanda

ho un IcollectionView Proprietà chiamata Suggestions che è vincolato a una casella di lista ItemsSource.

Uso il seguente codice per configurarlo

// Set up Suggestions collection for filtering purposes
var collectionViewSource = new CollectionViewSource();

collectionViewSource.Source = SomeCollection; // SomeCollection is of type IEnumerable!! 
// Create view
Suggestions = collectionViewSource.View;

Suggestions.Filter = new Predicate<object>(
                                       item =>
                                       item.ToString().StartsWith(SearchString, true, CultureInfo.CurrentCulture))

SearchString è vincolato a una casella di testo Text Proprietà, che ogni volta che cambia innesco Suggestions.Refresh() Ciò riempiono la collezione.

Funziona bene, ma mostra tutti gli articoli disponibili. Come posso farlo mostrare solo gli oggetti X migliori?

È stato utile?

Soluzione

Non puoi semplicemente spostare il tuo filtro Predicate condizione a SomeCollection.Where clausola?:

SomeCollection = SomeCollection.Where(item => item.ToString().StartsWith(
    SearchString, true, CultureInfo.CurrentCulture)).Take(10);
collectionViewSource.Source = SomeCollection;

Altri suggerimenti

Associare la visibilità a tutti gli articoli filtrati e impostare la visibilità su True solo per i migliori X o,

Prima filtrare tutti gli articoli e mettere gli elementi X migliori in un'altra proprietà e legarli all'interfaccia utente

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top