【发布时间】:2016-12-28 19:44:22
【问题描述】:
所以当我在主窗口构造函数中使用这个方法时数据被正确加载:
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;
我知道,现在我可以重用第一种方法 - 但我拆分声明以调试为什么它首先会导致更新失败。
【问题讨论】:
-
考虑发布minimal reproducible example。第一步创建 MCVE 将帮助您找到并解决问题。如果您自己无法解决问题,那么它将帮助其他用户重现问题以帮助您。另外,不要一遍又一遍地创建
BindingSource的不同实例,只需在设计时在表单上放置一个BindingSource并使用它。 -
我发现了问题所在。这是我的疏忽,我会做出回答来描述我是如何处理这个问题的。
标签: c# winforms data-binding combobox