首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据绑定到组合框并添加选择选项

将数据绑定到组合框并添加选择选项
EN

Stack Overflow用户
提问于 2013-06-22 18:07:18
回答 2查看 1.5K关注 0票数 0

我正在使用VB.NET和Visual Studio2010

我有一个带有组合框的windows窗体。

我使用以下内容填充组合框

代码语言:javascript
复制
Dim objSizes As List(Of ASME_Hub_Sizes) = ASME_Hub_Sizes.GetAllHubSizes()

        If Not objSizes Is Nothing Then
            With Me.cboSize
                .DisplayMember = "Size"
                .ValueMember = "ID"
                .DataSource = objSizes
            End With
        End If

这很好用,但我想添加一个“选择大小...”但我不确定该怎么做。

在asp.net中做这件事似乎容易得多,但这让我感到困惑

谢谢,米克

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 18:26:49

您可以尝试向ID =0、值= "Select size...“的objSizes集合添加一个自定义objSize对象。因为它的ID为0,所以它应该在顶部(我认为),并且不会与数据库中的任何值冲突,在保存记录时,您可以验证组合框,以避免写入"Select size...“对象添加到数据库中。我将有一些代码,看看这是否可以工作……

好了,我又看了一遍。您可以按照我的建议进行操作,但在将列表传递到combobox之前,必须对列表进行排序。下面是我的例子:

代码语言:javascript
复制
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        With Me.ComboBox1
            .DisplayMember = "Description"
            .ValueMember = "ID"
            .DataSource = GetListOfObjects.returnListOFObjects
        End With
    End Sub
End Class

Public Class dummyObjectForCombo

    Public Property ID As Integer
    Public Property Description As String

    Public Sub New(ByVal id As Integer,
                   ByVal description As String)
        _ID = id
        _Description = description
    End Sub
End Class

Public Class GetListOfObjects

    Public Shared Function returnListOFObjects() As List(Of dummyObjectForCombo)

        Dim col As New List(Of dummyObjectForCombo)

        Dim obj0 As New dummyObjectForCombo(-1, "Herp")
        Dim obj1 As New dummyObjectForCombo(1, "Jamie")
        Dim obj2 As New dummyObjectForCombo(2, "Bob")

        col.Add(obj1)
        col.Add(obj2)
        col.Add(obj0)

        'using a lambda to sort by ID as per http://stackoverflow.com/questions/3309188/c-net-how-to-sort-a-list-t-by-a-property-in-the-object
        Return col.OrderBy(Function(x) x.ID).ToList

    End Function

End Class

我使用-1作为最上面的记录,而不是0。

因此,您可以像往常一样获取列表,添加额外的虚拟记录,然后根据上面的代码对其进行排序,然后将其分配为组合框数据源。

票数 0
EN

Stack Overflow用户

发布于 2013-06-22 18:45:56

只需在设置数据源属性之前添加项

C#:cboSize.items.add(...);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17249502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档