将ComboBox绑定到不在数据集中的DataTable

时间:2014-03-24 07:41:42

标签: vb.net datatable dataset bindingsource

我正在使用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'.

如果没有将表添加到数据集中,是否可以执行此操作?

1 个答案:

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