尝试根据用户输入实时更新列表框时的WPF性能问题

时间:2012-05-15 15:49:39

标签: windows-phone-7 listbox windows-phone-7.1

我是Windows Phone开发的新手,我正在尝试开发一个字典应用程序。 我有一个允许用户输入单词的文本框和一个列表框来显示所有与用户输入实时匹配的单词,所以我使用了如下的textchanged事件:

private void searchTextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
            wordNeedToDefine = searchTextBox.Text;
            if (!(wordNeedToDefine == null || wordNeedToDefine.Equals("")))
            {
                var items = (from words in wordAndIndexList where words[0].StartsWith(wordNeedToDefine) select words[0]);                    
            }
            this.Dispatcher.BeginInvoke(() =>
            {
                wordsListBox.ItemsSource = items;
            });
    }

一切都运行良好但是有关于性能的问题,当用户输入文本和列表框更新项目时,它是滞后的。 有人能告诉我我需要做些什么来提高性能。我也在尝试AutoCompleteBox,但它有同样的问题。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您使用CollectionViewSource进行过滤,您将获得更好的性能,您需要过滤的字符越多,速度就越快。即只有在用户输入至少3个字符后才开始过滤。