2013-07-09 26 views
0

我将有各种各样的,我要绑定到各种组合框的列表,所以我创建了一个名为“myValueList”我想一个列表绑定到组合框

Imports MySql.Data.MySqlClient 

Public Class myValueList 
    Public Property list As New List(Of myValueItem) 

    Public Class myValueItem 
     Public Property displayString As String 
     Public Property valueString As String 
    End Class 

    Public Sub fill(ByVal mySqlString As String) 
     Dim myconn As New myLib.mySQL 
     myconn.setConnectionString("aUser", "aPassword", "aServer", "aDatabase") 
     myconn.open() 
     Dim myReader As MySqlDataReader = myconn.sendquery(mySqlString) 
      Do While myReader.Read 
       list.Add(New myValueItem() With {.displayString = myReader(0), .valueString = myReader(1)}) 
      Loop 

     myconn.closeDispose() 
    End Sub 

End Class 

类然后我试图将其绑定到该组合框:

<ComboBox Height="22" Name="ComboBox54" Width="120" HorizontalAlignment="Left" ItemsSource="{Binding Path=my_list}" DisplayMemberPath="displayString" SelectedValuePath="valueString"/> 

这里是我的主窗口类:

Class MainWindow 
    Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded 
     Dim myI As New initial 
     Me.DataContext = myI 
    End Sub 
End Class 

这是我最初的类:

Public Class initial 
Public Property my_list As New myValueList 

    Public Sub New() 
     my_list.fill("SELECT * from aTable") 
    End Sub 
End Class 

在此应用程序的其他绑定工作,所以我怀疑这是我要如何创建这个列表,然后结合的方式。任何帮助/见解将不胜感激。

+0

是不是'list'是一个集合的实际属性?如果是这样,你的绑定应该不是'ItemsSource =“{Binding Path = my_list.list}”'?你的my_list是类似于拥有列表属性的类,但看起来像是你的父对象而不是嵌套子对象的绑定。 VB不是我熟悉的东西,所以只是一个疯狂的猜测,你可能会尝试 – Viv

+0

@Viv就是这样!谢谢。 – volderArt

回答

0

你的路径设置为my_list(至极是myValueList一个实例),但在你的类属性被命名为list,你应该绑定到my_list.list,这是实际的枚举。

+0

我已经通过添加我的MainWindow类更新了我的问题。我认为这将显示为什么我绑定到my_list – volderArt

+0

然后,您仍然应该通过您称为my_list(my_list.list)的myValueList类绑定到列表。 – MrDosu

+0

谢谢!作为一个额外的问题,这是否有道理我这样做?你认为它应该以另一种方式完成吗? – volderArt