我将WPF应用程序与搜索文本框和Listview绑定到ICollectionView。我可以基于texbox值过滤ICollectionView,但是我有兴趣通过传递多个由逗号分隔的值并将多个Filtering应用于集合来扩展功能。根据多个条件筛选CollectionView
var filterStrings= TextBoxValue.Split(',');
MyCollectionView.Filter = m =>
(((MyObject)m).myProperty.ToLower().ContainsAll(filterStrings)
其中ContainsAll是扩展
public static bool ContainsAll(this string source, params string[] values)
{
return values.All(x => source.Contains(x));
}
的过滤器不包含多个结果,任何想法,为什么?谢谢
编辑
,收藏的简单的字符串值(鲍勃斌,灰色,翅,奇,壳牌),我想例如提供一个过滤器(B,F)和具有上述值(鲍勃斌,散热片,奇)
您能否介绍一个示例场景(列表中的项目是什么,您的过滤标准和预期结果是什么)?现在很难理解这个问题。作为第一个猜测,我会说你应该使用'Any'而不是'All'。 –
@MM:sry我没有看到你的答案*(避免回答评论中的问题) – sac1
@MártonMolnár是完全正确的,它的工作正常。我不能接受它,因为它不是一个答案:( – Jim