我將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