我在网上看了很多例子,但是找不到任何有用的东西(或者我做错了)。
ComboBox像这样绑定到Dictionary(String,String)和Nothing:
cbBox.DataSource = New BindingSource(dictStrings.Keys, Nothing)
但是,在调用dictStrings.Add(s1, s2)
后,ComboBox的下拉菜单不会将新添加的值列为dictStrings
。我怎样才能解决这个问题?我尝试重新绑定datasource
,但它只是将下拉菜单留空。我试图使用ResetBindings()
函数,但这不会起作用。谢谢。
答案 0 :(得分:1)
你可以创建一个新的绑定,但是你会丢失你当前的索引位置,如果你连接了SelectedIndexChanged事件,那么可能会启动一些意想不到的烟火,所以这将是一个解决方法:
Dim index As Integer = cbBox.SelectedIndex
RemoveHandler cbBox.SelectedIndexChanged, AddressOf cbBox_SelectedIndexChanged
dictStrings.Add("new key", "new value")
cbBox.DataSource = New BindingSource(dictStrings.Keys, Nothing)
cbBox.SelectedIndex = index
AddHandler cbBox.SelectedIndexChanged, AddressOf cbBox_SelectedIndexChanged
答案 1 :(得分:0)
ComboBox1.Update()
应该解决问题。
编辑:cbBox.Update()
答案 2 :(得分:-1)
您是否尝试过cbBox.DataSource.refresh?