Tôi đang sử dụng mẫu thiết kế MVVM, với một ListView được liên kết với một ListCollectionView trên ViewModel. Tôi cũng có một số combobox được sử dụng để lọc ListView. Khi người dùng chọn một mục từ combobox, ListView được lọc cho mục đã chọn. Bất cứ khi nào tôi muốn lọc trên đầu trang của những gì đã được lọc, nó undoes bộ lọc trước của tôi như nó không bao giờ xảy ra. Điều này cũng đúng cho việc loại bỏ một bộ lọc. Việc xóa bộ lọc cho một combobox sẽ xóa tất cả bộ lọc và hiển thị danh sách gốc. Có thể có nhiều bộ lọc riêng biệt trên cùng một ListCollectionView không?WPF Sử dụng nhiều bộ lọc trên cùng một ListCollectionView
Tôi có làm điều gì đó sai hoặc đơn giản là không được hỗ trợ? Bạn có thể tìm thấy ảnh chụp màn hình của ứng dụng của tôi here để xem những gì tôi đang cố gắng hoàn thành. Đây là mã của tôi để lọc ...
/// <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;
};
}
}
Tôi biết đã gần một thập kỷ sau, nhưng liên kết đã chết. – KSwift87