我想通过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]));
}
}
答案 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]);
}
});
}