Sto utilizzando il modello di progettazione MVVM, con un controllo ListView associato a un ListCollectionView sul ViewModel. Ho anche diversi combobox che vengono utilizzati per filtrare il ListView. Quando l'utente seleziona un elemento dalla casella combinata, ListView viene filtrato per l'elemento selezionato. Ogni volta che voglio filtrare su ciò che è già filtrato, annulla il mio filtro precedente come se non fosse mai successo. Lo stesso vale anche per la rimozione di un filtro. La rimozione di un filtro per una casella combinata rimuove tutti i filtri e visualizza l'elenco originale. È possibile avere più filtri separati sullo stesso ListCollectionView?WPF Utilizzo di più filtri sullo stesso ListCollectionView
Sto facendo qualcosa di sbagliato o semplicemente non è supportato? Puoi trovare una schermata della mia applicazione here per vedere cosa sto cercando di realizzare. Ecco il mio codice per il filtraggio ...
/// <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;
};
}
}
So che è quasi un decennio più tardi, ma il collegamento è morto. – KSwift87