使用Dispatcher.BeginInvoke()向Combobox添加列表项

时间:2012-09-24 13:30:49

标签: silverlight-4.0

我想通过Dispatcher.BeginInvoke向ComboBox添加一个List。但是当我尝试将它放入循环中时,只加载了最后一个值。

    private void LoadToComboBox(List<string> msg)
    {
        for (int i = 0; i < msg.Count; i++)
        {
           this.Dispatcher.BeginInvoke(() => cmbListItems.Items.Add(msg[i]));
        }
    }

1 个答案:

答案 0 :(得分:2)

Dispatcher.BeginInvoke()是一个异步调用。发生的事情是,当您调用cmbListItems.Items.Add()函数时,它已设置为msg.Count

尝试这样的事情:

private void LoadToComboBox(List<string> msg)
        {

            this.Dispatcher.BeginInvoke(() => 
            {
                for (int i = 0; i < msg.Count; i++) {
                    cmbListItems.Items.Add(msg[i]);
                }
            });

        } 
相关问题