以下是使用DataSource填充组合框的代码
Dim CountryList As Array = MyCtrl.GetAllCountries
With cbCountyList
.DataSource = CountryList
.DisplayMember = "CountryName"
.ValueMember = "CountryID"
End With
向数据库添加新的COuntry名称后,我想反映组合框中的更改。重复此代码不是一个选项,因为它会触发SelectIndexChange事件,并且必须做一些糟糕的工作来避免这种情况。
所以我想知道是否有办法刷新组合框列表。我实际上认为与DataSource属性绑定应该自动执行。我也试过
cbCountyList.Refresh()
提前致谢。
答案 0 :(得分:4)
您应该在ComboBox和DataSource之间建立一个BindingSource
。然后拨打BindingSource.ResetBindings(false)
。它会为你带来所有的魔力。
这就是我的意思(在C#中,但同样的想法):
BindingSource b = new BindingSource();
b.DataSource = CountryList;
cbCountryList.DataSource = b;
...
...
b.ResetBindings(false); // cbCountryList now has the latest countries