大数据绑定失败

时间:2012-09-16 22:16:12

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

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

我使用到位 QuickSort进行过滤项目的排序和Visibility属性。我猜想出于性能原因这是最好的。

首先,我尝试将ObservableCollection绑定到ListBox。当我快速输入文本时,它会抛出异常(检测到布局循环)。

比我尝试使用List作为ItemsSource。排序/过滤完成后,我解雇了NotifyPropertyChanged(“MyList”)。没有例外,但是当文件管理器短语仅导致少量可见项时。它装得非常慢。

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

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

实际上工作速度很快,没有错误。

有人可以告诉我在我之前的尝试中可能出现的问题,以及这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

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

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