子窗体上的C#ComboBox不更新

时间:2018-07-14 19:15:54

标签: c# winforms .net-4.0

我在需要更改其数据源的子窗体(Form2)上有一个ComboBox。当我在父级(Form1)上试用时,可以通过先将其无效来更新CB:

var FilteredList = new List<Tag>();
FilteredList = ApplyFilter(OriginalList);

comboBox1.DataSource = null;
comboBox1.DataSource = FilteredList;

那很好。但是,子窗体上的相同代码不起作用。数据在那里。我可以在断点处浏览新项目,但是表单上的cb为空。我什至尝试刷新并调用DoEvents():

comboBox1.DataSource = null;
comboBox1.DataSource = FilteredList;
this.Refresh();
Application.DoEvents();

我也尝试调用更改,但是那没有用,或者我没有正确执行。

comboBox1.Invoke((MethodInvoker)delegate { comboBox1.DataSource = FilteredList; });

这是Tag类:

public class Tag
{
    public string Name { get; set; }
    public string Desc { get; set; }
    public string Type { get; set; }
    public string Station { get; set; }

    public override string ToString()
    {
        return Name;
    }
}

1 个答案:

答案 0 :(得分:0)

对于具有相同问题的其他任何人,将comboBox1.DataSource设置为新的对象列表时,也需要更新comboBox1.DisplayMember设置。这是我的最终代码:

comboBox1.DataSource = null;
comboBox1.DataSource = FilteredList;
comboBox1.DisplayMember = "Name";