我有一个名为IcollectionView
的{{1}}属性绑定到ListBox的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))
绑定到TextBox的SearchString
属性,每当更改触发重新过滤集合的Text
时都会绑定。
这很有效,但会显示所有可用的项目。如何让它只显示前X项?
答案 0 :(得分:1)
您是否只能将过滤器Predicate
条件移至SomeCollection.Where
子句?:
SomeCollection = SomeCollection.Where(item => item.ToString().StartsWith(
SearchString, true, CultureInfo.CurrentCulture)).Take(10);
collectionViewSource.Source = SomeCollection;
答案 1 :(得分:-1)
将可见性与所有已过滤的项目相关联,并将仅对前X项目的可见性设置为true,或
首先过滤所有项目,然后将前x个项目放在另一个属性中并将其绑定到UI