从Access连接到数据集的VB.net级联组合框-更改单元,&;小数到小数

从Access连接到数据集的VB.net级联组合框-更改单元,&;小数到小数,vb.net,combobox,cascadingdropdown,Vb.net,Combobox,Cascadingdropdown,我有一个相当复杂的组合框场景,作为编程新手,我一直在努力寻找最佳的方法 我有一个带有DataTable的数据集,DataTable有几个数字列的数据。数字数据由以美国标准单位给出的距离组成。我目前已经设置好组合框并开始工作,但我需要从两个方面扩展我目前拥有的组合框 我需要能够将数据列中显示的十进制数转换为分数,有没有办法做到这一点并保持数据绑定?在这种情况下,它是数据源的显示成员 我需要能够以不同的单位显示我的下拉选项。。。我已经编写了单元转换类来帮助解决这个问题,但我不知道我是否也可以这样做并

我有一个相当复杂的组合框场景,作为编程新手,我一直在努力寻找最佳的方法

我有一个带有DataTable的数据集,DataTable有几个数字列的数据。数字数据由以美国标准单位给出的距离组成。我目前已经设置好组合框并开始工作,但我需要从两个方面扩展我目前拥有的组合框

  • 我需要能够将数据列中显示的十进制数转换为分数,有没有办法做到这一点并保持数据绑定?在这种情况下,它是数据源的显示成员

  • 我需要能够以不同的单位显示我的下拉选项。。。我已经编写了单元转换类来帮助解决这个问题,但我不知道我是否也可以这样做并维护数据绑定?我还想转换显示成员上的单位

    Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As         System.EventArgs) Handles ComboBox1.SelectionChangeCommitted
     Select Case ComboBox1.SelectedItem
        Case "Tire1"
            With ComboBox2
                .DataSource = Tire1BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "Tire2"
            With ComboBox2
                .DataSource = Tire2BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "Tire3"
            With ComboBox2
                .DataSource = Tire3BindingSource
                .ValueMember = "OD"
                .DisplayMember = "OD"
            End With
        Case "HubCap"
            ComboBox3.DataSource = Nothing
            With ComboBox2
                .DataSource = HubcapBindingSource
                .ValueMember = "ID"
                .DisplayMember = "ID"
            End With
      End Select
    End Sub
    
    Private Sub ComboBox2_SelectedIndexChanged(sender As System.Object, e As      System.EventArgs) Handles ComboBox2.SelectionChangeCommitted
    Select Case ComboBox1.SelectedItem
        Case "Tire1"
            With ComboBox3
                .DataSource = Tire1BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "Tire2"
            With ComboBox3
                .DataSource = Tire2BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "Tire3"
            With ComboBox3
                .DataSource = Tire3BindingSource
                .ValueMember = "ID"
                .DisplayMember = "Weight"
            End With
        Case "HubCap"
            ComboBox3.DataSource = Nothing
            With ComboBox2
                .DataSource = HubCapBindingSource
                .ValueMember = "ID"
                .DisplayMember = "ID"
            End With
    End Select
    

  • 在处理显示分数和单位等问题时,使用组合框的最佳方法是什么?

    是的,您可以在不影响数据绑定的情况下绘制分数。您必须设置DrawMode属性并处理
    DrawItem
    MeasureItem
    事件。欲了解更多信息,请阅读MSDN文章

    谢谢,我以前没见过。我将来可能会用到它,但我想我会尝试摆脱分数的要求。