由于其他原因,我的应用程序没有使用 MVVM 架构设置,我目前无法设置。我现在唯一需要修改的是要从数据库中填充的组合框(它存储在 OracleDataReader 中)。我想通过循环通过这个 OracleDataReader 以编程方式将项目添加到组合框中,或者以某种方式绑定它。
Public Sub LoadLocationCombo()
Dim rs As OracleDataReader
Dim dt As New DataTable()
Dim dr As DataRow
Dim lstItems As New ArrayList
rs = objClsDB.LocationCombo
dt.Load(rs)
dt.Columns("description").AllowDBNull = True
dt.Columns("value_id").AllowDBNull = True
dt.Columns("description").DefaultValue = ""
dt.Columns("value_id").DefaultValue = 0
dr = dt.NewRow
dr("description") = ""
dr("value_id") = 0
dt.Rows.InsertAt(dr, 0)
cboLocation.ItemsSource = dt.DefaultView
cboLocation.DisplayMemberPath = "description"
cboLocation.SelectedValuePath = "value_id"
End Sub
这是我目前的方法,我也在尝试在顶部添加一个空白行。这使得组合看起来像多行但没有任何内容在选定的值中并且没有任何显示。
编辑:如果我删除 cboLocation.DisplayMemberPath 和 .SelectedValuePath 然后组合框充满了一堆 System.Data.Common.DataRecordInternal