【问题标题】:Binding fails on big data大数据绑定失败
【发布时间】:2012-09-09 04:39:34
【问题描述】:

我创建了一个具有实时过滤和排序功能的应用程序(当文本框中的文本发生变化时,列表会动态变化)。我使用了一个绑定到 ObservableCollection 的 ListBox,后来又绑定到了一个 List。它适用于小数据,但当我使用 1000 个项目时它失败了。

我使用 就地 QuickSort 进行排序,并使用 Visibility 属性来筛选项目。出于性能原因,我想这将是最好的。

首先我尝试将 ObservableCollection 绑定到 ListBox。当我快速输入文本时,它引发了异常(检测到布局周期)。

比我尝试使用 List 作为 ItemsSource。排序/过滤完成后,我触发了 NotifyPropertyChanged("MyList")。没有例外,但是当文件过滤器短语只导致 少数可见 项时。加载速度很慢。

我最终做了一些我不喜欢的事情,因为它看起来真的很业余。

Data.ApplyFiltersSorting();
ItemsListBox.ItemsSource = Data.MyItems.Where(a => a.Visibility == Visibility.Visible);

实际上运行速度很快并且不会导致错误。

谁能告诉我在我之前的尝试中可能出了什么问题,以及正确的做法是什么?

【问题讨论】:

    标签: c# windows-phone-7 data-binding binding


    【解决方案1】:

    您是否尝试过使用CollectionViewSource 进行排序和过滤?

    Geoff Hudik 在这里做了类似的事情:http://www.geoffhudik.com/tech/2010/10/14/wp7-in-app-searching-filtering.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-05
      • 2014-10-19
      • 2019-08-26
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多