更新数据源时,Combobox选项不会更改

时间:2016-12-28 19:44:22

标签: c# winforms data-binding combobox

因此,当我在主窗口构造函数中使用此方法时,数据已正确加载:

public void Load_Dropdown(configuration con)
{
    bindinglist = new BindingList<ListCollection.ListsList>(Get.ListCollection(con).List);
    BindingSource bSource = new BindingSource {DataSource = bindinglist};
    sharepointListSelect.DataSource = bSource;
    sharepointListSelect.DisplayMember = "Title";
    sharepointListSelect.ValueMember = "ID";
}

这样可以正常工作,但是当我尝试调用类似的方法以便稍后更新选项时,没有任何反应 - 因为下拉列表中的选项不会改变。

我调用它来更新它的方法如下:

public bool Reload_Dropdown(configuration con)
{            
    bindinglist = new BindingList<ListCollection.ListsList>(Get.ListCollection(con).List);
    BindingSource bSource = new BindingSource { DataSource = bindinglist };
    sharepointListSelect.DataSource = bSource; 
    sharepointListSelect.DisplayMember = "Title";
    sharepointListSelect.ValueMember = "ID";


    //There is other logic here, but i left it out as it isn't relevant
    return true;
}

顺便说一句,绑定列表对象在类中初始化为:

private BindingList<ListCollection.ListsList> bindinglist;

我知道,现在我可以重用第一种方法 - 但是我将声明拆分为调试为什么它首先失败了。

1 个答案:

答案 0 :(得分:0)

我很愚蠢 - 所以问题不在于任何一种方法,而是我如何调用该方法。如果方法不是静态的,则不能从另一个表单中调用该方法。我本人的巨大疏忽 - 我认为有点过于习惯于MVC。

只要您在同一方法中调用它,此解决方案就可以正常工作。我选择了一个按钮来刷新下拉列表。