سؤال

انا لدي 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 أعلى في خاصية أخرى وربطها بـ UI

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top