【问题标题】:Searching a bound Combo Box for User Input在绑定的组合框中搜索用户输入
【发布时间】:2012-09-10 01:17:03
【问题描述】:

各位好,

我正在尝试在 vb.net 组合框中搜索项目。组合框已绑定到数据集。显示成员设置为仅显示所选记录的单列。我最初设置了它,因此组合中显示的对象是自定义类。在这个类中,我指定了我想要跟踪的所有属性,并且看起来效果很好。但是,现在我在其绑定状态下使用组合框,操作数据要困难得多。

使命: 要让用户键入一个数字,如果该数字包含在 ComboBox 中,那么组合框应该移动到该记录,以便绑定到该控件的所有其他项目也将更新。

研究: 我查看了 System.Windows.Forms.BingingManagerBase 类,它似乎有我需要的信息。我只是无法弄清楚这与我正在尝试做的事情之间的桥梁。我想把一些东西放在一起,所以我尝试简单地对数据集进行 SQL 搜索,以查找组合框中的文本。不幸的是,这需要后期绑定,而我的 .Net 紧凑框架的目标版本不支持。

这是我尝试的后期绑定的示例。 (我相信我正在使用 VB.net 2005,Compact Framework 3.5:

For i as integer = 0 to combobox.items.count - 1 

    dim Dsr as Dataset.Row  
    dim dv as dataview

    Dsr = DirectCase(Dv.row, Dataset.Row) 

    If Dsr(i).DesiredColumn = DesiredRow.Desiredcolumn then 
    'Do such and such code
    End If 

Next 

我希望能够在数据集中搜索与查询匹配的特定记录。在找到与查询匹配的行后,我希望能够将组合框移动到 SQL 查询中找到的行。主要问题似乎是 Combo 在 Datarowviews 中工作,而我的数据集主要转换为与 DS 有关的行。

任何人对此有一些见解,将不胜感激。

再次感谢!

【问题讨论】:

  • 为了进一步澄清,如果该项目存在,我需要将组合框移动到与用户输入的文本相对应的项目。唯一的问题是组合中的项目是绑定到数据集的 DataView 对象,我不能像上面那样进行后期绑定。

标签: vb.net data-binding combobox datarow late-binding


【解决方案1】:

如果您知道应该在组合框中选择的项目,您可以设置ComboBox.SelectedItem Property

如果您确实确实需要遍历绑定到组合框的所有项目,那么一旦找到正确的项目,您就可以设置ComboBox.SelectedIndex Property

【讨论】:

  • 嘿,感谢 HadleyHope 的帮助,但组合框已绑定到数据集。该数据集用行填充组合。 SelectedIndex 和 SelectItem 不会返回任何有用的信息,除非我先将它们转换为 DataRowView。我能把它拉下来的唯一方法是在下面。但是我希望我不必遍历所有记录。相反,我希望我能找到与我想要的标签相对应的记录并将组合移动到该记录位置。
【解决方案2】:
For i As Integer = 0 To ComboBox.Items.Count - 1
                Dim drv As System.Data.DataRowView = Nothing
                Dim desiredColumn As String = String.Empty

                drv = DirectCast(ComboBox.Items.Item(i), DataRowView)
                desiredColumn = Convert.ToString(drv("Tag"))

                Debug.WriteLine(desiredColumn)
            Next

这似乎找到了组合框中每条记录的列值,使我能够找到我正在搜索的文本的正确索引。就像我说的那样,如果我能找到一种方法来搜索组合框中的项目列表而不必解决每个项目,我将不胜感激。

【讨论】:

    猜你喜欢
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多