1

对于正在发生的事情的略微模糊的描述,请提前道歉。我很确定自己做了什么,只是不确定正确的术语。我会尽我所能尽快回复任何澄清请求。

我的应用程序中有一个数据绑定查询,它正在查询我们数据库中的“客户”表。我在设计视图中直接从 ComboBox 的数据源创建器创建了它。

设计器中创建的各种代码包括:

Me.CustomerBindingSource.DataSource = Me.CustomerDataSet
Me.ComboBox_Customers.DataSource = Me.CustomerBindingSource

我在开发此功能的第一阶段所做的是向我的用户显示一个 ComboBox,它通过对 BindingSource 应用过滤器来显示客户列表的特定子集。

Me.CustomerBindingSource.Filter = "someColumn = 3"

第二遍我想做的是允许用户在文本框中输入特定的信息,并检查它是否Me.CustomerDataSet像这样出现:

Dim x As IEnumerable(Of CustomerDataSet.customerRow) = From cust In Me.CustomerDataSet.customer Where cust.custno.Trim = "test"
If x.Count <> 0 Then

实际问题

在这一点上,我有一个customerRow对象。我想检查这个 customerRow 对象是否出现在Me.ComboBox_Customers通过过滤后呈现给用户的列表中Me.CustomerBindingSourceMe.CustomerBindingSource不(直接)包含customerRow对象,它包含Object对象。

如何确定是否Me.CustomerBindingSource包含较低级别的 customerRow 对象?

一旦确定Me.CustomerBindingSource包含该项目,如何在 ComboBox 中选择该条目?

4

1 回答 1

0

我确定的答案是调用一个基本上可以执行的函数:

For Each customerIn As DataRowView In Me.CustomerBindingSource
    If customerIn .Row Is x(0) Then
        Me.ComboBox_Customers.SelectedItem = customerIn 
    End If
Next
`Otherwise do nothing

所以Is我正在寻找的比较是Me.CustomerBindingSource.Item(index).Row因为虽然Me.CustomerBindingSource只包含Object对象,但它们都是类型的对象,DataRowView它们都有一个Row属性,其中包含DataRow我已经从我的 LINQ 查询中检索到的对象Me.CustomerDataSet

如果有人对这个问题有任何比For循环更棒的答案,我很乐意学习它们。

于 2012-04-27T08:48:55.897 回答