Windows phone 7 更新列表框会导致延迟

Windows phone 7 更新列表框会导致延迟,windows-phone-7,listbox,delay,itemssource,Windows Phone 7,Listbox,Delay,Itemssource,我想显示一个包含大约10个项目的列表框。每次我通过向列表中添加一个项目来更新它时,都会引起一点明显的延迟,UI会冻结一段时间。我还尝试使用ObservableCollection而不是List作为ItemsSource,这并没有解决问题 我的列表框必须更新得非常快,所以我真的需要你的帮助,请!: 下面是一些代码: public partial class MainPage : PhoneApplicationPage { //private List<Word> Words

我想显示一个包含大约10个项目的列表框。每次我通过向列表中添加一个项目来更新它时,都会引起一点明显的延迟,UI会冻结一段时间。我还尝试使用ObservableCollection而不是List作为ItemsSource,这并没有解决问题

我的列表框必须更新得非常快,所以我真的需要你的帮助,请!:

下面是一些代码:

public partial class MainPage : PhoneApplicationPage
{
    //private List<Word> Words = new List<Word>();
    ObservableCollection<Word> Words = new ObservableCollection<Word>();

    // Konstruktor
    public MainPage()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        ListBox1.ItemsSource = Words;

        for (int j = 0; j < 10; j++)
        {
            Words.Add(new Word(j.ToString()));
        }
    }
}

public class Word
{
    public String sWord { get; set; }

    public Word(String word)
    {
        this.sWord = word;
    }
}
XAML


我找到了解决问题的办法。为了解决延迟问题,我现在使用StackPanel而不是ListBox,并通过以下方式添加按钮:

StackPanel1.Children.Add(new Button()
{
    Content             = "Hello World",
    BorderBrush         = new SolidColorBrush(Colors.Transparent),
    HorizontalAlignment = HorizontalAlignment.Left
});
您可以使用清除StackPanel

StackPanel1.Children.Clear();
向按钮添加单击事件的工作方式如下

foreach (Button btn in StackPanel1.Children)
{
    btn.Click += new RoutedEventHandler(Button_Click);
}

非常简单,速度快得多

显示列表中显示的数据模板/类。如果你有太多的转换器/逻辑发生,你会有糟糕的性能。我更新了帖子。这真的不是很多代码。你是如何添加项目的?只需在列表中添加一个项目:Words.addnewwordhello;您能否提供更多代码来说明向ObservableCollection添加项的方式?要优化列表框,可以在App.xaml中创建数据模板。
foreach (Button btn in StackPanel1.Children)
{
    btn.Click += new RoutedEventHandler(Button_Click);
}