繁体   English   中英

CollectionViewSource过滤器很慢

[英]CollectionViewSource filter is slow

列表很大时,筛选会变慢。 有没有更快的方法来处理过滤器? 目前这就是我所拥有的。

CollectionViewSource orderListCVS;

private void showCompletedRB(object sender, RoutedEventArgs e)
{
    CollectionView coll = orderListCVS.View as CollectionView;
    coll.Filter = null;
    orderListCVS.Filter += new FilterEventHandler(showCompletedFilter);
}

private void showCompletedFilter(object sender, FilterEventArgs e)
{
    Order order = e.Item as Order;
    if (order != null)
    {
        e.Accepted = (order.Status == Data.Status.Done);
    }
}

您是否尝试过这种方式:

public partial class MainWindow : Window
{
    private ICollectionView orderListCVS;

    private List<Order> orders;

    public MainWindow()
    {
        InitializeComponent();
        orders = new List<Order>();
        orderListCVS = CollectionViewSource.GetDefaultView(orders);
    }
    private bool showCompletedFilter(object sender)
    {
        Order order = sender as Order;
        if (order != null)
        {
            return order.Status == Data.Status.Done;
        }

        return false;
    }

    private void showCompletedRB(object sender, RoutedEventArgs e)
    {
        orderListCVS.Filter = showCompletedFilter;
    }
}

这是使用collectionView的最常见方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM