Pregunta

Yo tengo un IcollectionView propiedad llamada Suggestions que está vinculado a un cuadro de lista ItemsSource.

Yo uso el siguiente código para 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 está vinculado a un cuadro de texto Text propiedad, que cada vez que los cambios se desencadenan Suggestions.Refresh() que refila la colección.

Esto funciona bien, pero muestra todos los artículos disponibles. ¿Cómo puedo hacer que muestre solo los mejores elementos X?

¿Fue útil?

Solución

¿No puedes simplemente mover tu filtro? Predicate condición al SomeCollection.Where ¿cláusula?:

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

Otros consejos

Asociar la visibilidad con todos los elementos filtrados y establecer la visibilidad en verdad solo para los elementos X superiores o,

Primero filtre todos los elementos y coloque los elementos X superiores en otra propiedad y uniéndolo a la interfaz de usuario

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top