Вопрос

у меня есть IcollectionView собственность называется Suggestions который подходит к списку ItemsSource.

Я использую следующий код, чтобы настроить его

// 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 зарегистрировано в текстовом поле Text свойство, которое всякий раз, когда меняется триггеры Suggestions.Refresh() Это переработает коллекцию.

Это работает хорошо, но показывает все доступные предметы. Как заставить его показать только топ -x предметы?

Это было полезно?

Решение

Разве ты не можешь просто переместить свой фильтр Predicate условие в SomeCollection.Where пункт?:

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

Другие советы

Ассоциировать видимость со всеми фильтрованными элементами и установите видимость True только для топ -x элементов или,

Сначала отфильтруйте все элементы и поместите топ -x элементы в другое свойство и свяжите их с пользовательским интерфейсом

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top