我正在使用Vb.Net来开发小型应用程序。我想将组合框绑定到不在数据集中的数据表。绑定到数据集如下:
bsOS=new bindingSource(ds,"tablename")
假设我创建了我自己的不同表值,如下所示:
tblOS = dstaset.Tables("computers").DefaultView.ToTable(True, "os")
我想做的事情如下:
bsOS = New BindingSource(tblOS)
但是这个错误来了:
Unable to cast object of type 'System.Data.DataTable' to type 'System.ComponentModel.IContainer'.
如果没有将表添加到数据集中,是否可以执行此操作?
答案 0 :(得分:0)
这应该有效:
Combobox.DataSource = tblOs
Combobox.ValueMember = "<Column name you want as value>"
Combobox.DisplayMember = "<Column name which value you want to display in the list>"
要更新DataSource值,您可以执行以下操作:
Dim tblOs as DataTable = Combobox.DataSource
Dim dr as DataRow = tblOs.NewRow()
dr.Item(0) = "value"
dr.Item(n) = "display"
由于您的DataTable没有绑定任何东西,我怀疑是否有可能让它自动更新。但是,如果将tblOs保留为属性而不是局部变量,它将在获得新行时立即更新Combobox。