C# 大数据绑定失败

C# 大数据绑定失败,c#,windows-phone-7,data-binding,binding,C#,Windows Phone 7,Data Binding,Binding,我创建了一个实时过滤和排序的应用程序,当文本框中的文本发生变化时,列表会动态变化。我使用了一个绑定到ObservableCollection的列表框,后来又绑定到了一个列表。对于小数据,它工作得很好,但当我使用1000个项目时,它失败了 我使用了一个就地快速排序来对过滤项进行排序和可见性属性。我猜出于性能方面的考虑,这将是最好的 首先,我尝试将ObservableCollection绑定到一个列表框。当我快速输入文本时,检测到异常布局循环 然后我试着用一个列表作为ItemsSource。排序/筛

我创建了一个实时过滤和排序的应用程序,当文本框中的文本发生变化时,列表会动态变化。我使用了一个绑定到ObservableCollection的列表框,后来又绑定到了一个列表。对于小数据,它工作得很好,但当我使用1000个项目时,它失败了

我使用了一个就地快速排序来对过滤项进行排序和可见性属性。我猜出于性能方面的考虑,这将是最好的

首先,我尝试将ObservableCollection绑定到一个列表框。当我快速输入文本时,检测到异常布局循环

然后我试着用一个列表作为ItemsSource。排序/筛选完成后,我启动了NotifyPropertyChangedMyList。没有例外,但当文件管理器短语只导致几个可见项时。它装得很慢

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

Data.ApplyFiltersSorting();
ItemsListBox.ItemsSource = Data.MyItems.Where(a => a.Visibility == Visibility.Visible);
它实际上工作得很快,并且不会导致错误

有人能告诉我在我之前的尝试中可能出现了什么错误,以及正确的做法是什么吗?

您是否尝试过使用CollectionViewSource进行排序和筛选

Geoff Hudik在这里做了类似的事情: