他の理由で私のアプリケーションは 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 の束でいっぱいになります