मैं एमवीवीएम डिज़ाइन पैटर्न का उपयोग कर रहा हूं, एक सूची दृश्य के साथ ViewMiewel पर ListCollectionView से जुड़ा हुआ है। मेरे पास कई comboboxes भी हैं जिनका उपयोग ListView को फ़िल्टर करने के लिए किया जाता है। जब उपयोगकर्ता combobox से कोई आइटम चुनता है, तो सूची दृश्य को चयनित आइटम के लिए फ़िल्टर किया जाता है। जब भी मैं पहले से फ़िल्टर किए गए शीर्ष पर फ़िल्टर करना चाहता हूं, तो यह मेरे पिछले फ़िल्टर को पूर्ववत करता है जैसे कि यह कभी नहीं हुआ। फ़िल्टर को हटाने के लिए भी यही सच है। एक combobox के लिए एक फ़िल्टर को हटाने सभी फिल्टर हटा देता है और मूल सूची प्रदर्शित करता है। क्या एक ही ListCollectionView पर एकाधिक, अलग-अलग फ़िल्टर होना संभव है?WPF एक ही सूची पर एकाधिक फ़िल्टर का उपयोग कर चयन करें
क्या मैं कुछ गलत कर रहा हूं, या यह बस समर्थित नहीं है? मैं यह देखने के लिए कि मैं क्या पूरा करने की कोशिश कर रहा हूं, आप मेरे आवेदन here का स्क्रीन कैप्चर पा सकते हैं। फ़िल्टरिंग के लिए मेरा कोड यहां है ...
/// <summary>
/// Filter the list
/// </summary>
/// <param name="filter">Criteria and Item to filter the list</param>
[MediatorMessageSink("FilterList", ParameterType = typeof(FilterItem))]
public void FilterList(FilterItem filter)
{
// Make sure the list can be filtered...
if (Products.CanFilter)
{
// Now filter the list
Products.Filter = delegate(object obj)
{
Product product = obj as Product;
// Make sure there is an object
if (product != null)
{
bool isFiltered = false;
switch (filter.FilterItemName)
{
case "Category":
isFiltered = (product.Category.IndexOf(filter.Criteria, StringComparison.CurrentCultureIgnoreCase)) != -1 ? true : false;
break;
case "ClothingType":
isFiltered = (product.ClothingType.IndexOf(filter.Criteria, StringComparison.CurrentCultureIgnoreCase)) != -1 ? true : false;
break;
case "ProductName":
isFiltered = (product.ProductName.IndexOf(filter.Criteria, StringComparison.CurrentCultureIgnoreCase)) != -1 ? true : false;
break;
default:
break;
}
return isFiltered;
}
else
return false;
};
}
}
मुझे पता है कि यह लगभग एक दशक बाद है, लेकिन लिंक मर चुका है। – KSwift87