在Windows窗体VB.NET中刷新组合框

时间:2010-05-06 18:52:40

标签: vb.net

以下是使用DataSource填充组合框的代码

Dim CountryList As Array = MyCtrl.GetAllCountries
    With cbCountyList
      .DataSource = CountryList 
      .DisplayMember = "CountryName"
      .ValueMember = "CountryID"
    End With

向数据库添加新的COuntry名称后,我想反映组合框中的更改。重复此代码不是一个选项,因为它会触发SelectIndexChange事件,并且必须做一些糟糕的工作来避免这种情况。

所以我想知道是否有办法刷新组合框列表。我实际上认为与DataSource属性绑定应该自动执行。我也试过

cbCountyList.Refresh()

提前致谢。

1 个答案:

答案 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