Question

j'ai un IcollectionView propriété appelée Suggestions qui est apporté à une liste de liste ItemsSource.

J'utilise le code suivant pour le configurer

// 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 est obligé d'une zone de texte Text propriété, que chaque fois que les changements déclenchent Suggestions.Refresh() qui reflète la collection.

Cela fonctionne bien, mais montre tous les articles disponibles. Comment puis-je le faire afficher uniquement les éléments supérieurs?

Était-ce utile?

La solution

Tu ne peux pas simplement déplacer ton filtre Predicate condition au SomeCollection.Where clause?:

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

Autres conseils

Associez la visibilité à tous les éléments filtrés et définissez la visibilité sur true uniquement pour les éléments supérieurs ou,

Filtrez d'abord tous les éléments et placez les éléments supérieurs dans une autre propriété et liez-le à l'interface utilisateur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top