【问题标题】:Multiple Filter Listview C#多过滤器列表视图 C#
【发布时间】:2022-11-29 11:47:24
【问题描述】:

所以我有两个文本框,用户可以在其中过滤 ListView 中的 BoxNumber 或条形码。现在我想使用多重过滤,但是其中一个没有任何错误地工作。如果我将其中一个注释掉另一个正在工作,为什么?

        CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(parkingListe.ItemsSource);
        view.Filter = UserFilter;
        view.Filter = UserFilter_box;




        //Text Search (Barcode Search) 
        private bool UserFilter(object item)
        {
            if (String.IsNullOrEmpty(txtFilter.Text))
                return true;
            else
                return ((item as ParkingClass).parking_barcode.IndexOf(txtFilter.Text, StringComparison.OrdinalIgnoreCase) >= 0);
  
        }

        //Box Search (Box Inhalt Search)
        private bool UserFilter_box(object item)
        {
            if (String.IsNullOrEmpty(boxFilter.Text))
                return true;
            else
                return ((item as ParkingClass).parking_box.IndexOf(boxFilter.Text, StringComparison.OrdinalIgnoreCase) >= 0);
        }
   

【问题讨论】:

  • 如果您可以添加有助于我们尝试帮助您的错误消息。
  • 没有错误,一切都在编译。但是如果我有多余的过滤器,其中一个就不起作用了。如果我评论一个,另一个工作正常。

标签: c# wpf


【解决方案1】:

CollectionView.Filter 只能使用一个过滤器 Predicate 进行设置,因此当您分配它两次时,您只是在更改前一个过滤器值。

您应该将这两种方法组合成一个过滤器函数,用于 CollectionView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 2013-01-17
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    相关资源
    最近更新 更多