在过去的几天里,我阅读了大约一千个论坛帖子,并查看了许多代码示例,但我仍然无法弄清楚这一点。
我的目标是使用 Access 2007 查询中的值填充组合框。我可以通过使用 DataSource、DisplayMember 和 ValueMember 属性来做到这一点,但无论查询中的数据如何,组合框都默认为项目集合中的第一项,并且在移动主 BindingSource 时不会更改。我用这行代码绑定控件:
ComboBox1.DataSource = DataSet1.qryItemSourceTest
ComboBox1.DisplayMember = "SourceTestDisplayField"
ComboBox1.ValueMember = "SourceTestIDField"
Combobox1.DataBindings.Add(New Binding("SelectedValue", qryTestBindingSource, "TestField", True))
我也尝试过使用 BindingSource 作为数据源。我也尝试过使用数组作为数据源。
如果我从 IDE 的“数据源”选项卡上拖动控件,它将正确滚动记录,但它只会显示值,而不是我希望组合框显示的查询“查找”值。在将组合框从“数据源”选项卡拖动后,我尝试更改组合框的 DisplayMember 和 ValueMember 属性,这似乎也破坏了功能。
我在这里寻找一些最佳实践。我知道我在这里遗漏了一些简单的东西,对于发布一个已经被多次讨论的问题,我深表歉意,但我可以在这里使用一些个人帮助。
编辑:我最终能够使用 Visual Studio IDE 属性窗口完成我的目标。控件上的第二个属性是 Data Bindings 属性,它可以扩展为我所需要的。我以前从未见过这个,因为它不像其他所有东西一样按字母顺序排列。