2

私のフォームでは、asを持つaDataGridViewにバインドされています。また、フォーム上にいくつかのTextFieldsとComboBoxがあり、これらはからの異なる列にバインドされています。アイデアは、の選択された行の列の値がフォームの他のコントロールに反映されるということです。少し複雑に聞こえるかもしれませんが、TextFieldsと、データセット内のテーブルにバインドされたComboBoxを接続するのはかなり簡単です。BindingSourceDataSetDataSourceDataSetBindingSourceDataGridView

私の問題は、今回はComboBox、のテーブルからではなく、配列からの項目を設定したいということですDataSet。これは私が試したことです:

Me.ComboBox.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue",       Me.TblBindingSource, "ColumnName", True))

Dim ItemArray(2) As String
ItemArray(0) = ""
ItemArray(1) = "Default"
ItemArray(2) = "User-set"
ComboBox.DataSource = ItemArray

が正しく入力されているため、これは部分的に機能しているようです。ComboBox値を選択すると、に表示されますDataGridView。ただし、の行を変更しても、選択した値は更新されませんDataGridView。この列("ColumnName")は、ComboBoxColumn上記の方法でアイテムリストを取得するものであり、期待どおりに機能するように継ぎ目があります。

明確でない場合; 動作する同様の機能を持ついくつかのComboBoxがありますが、DataTable次のように、それらはの列にバインドされています。

Me.ComboBox1.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.Tbl1BindingSource, "WiDMethodX", True))
Me.ComboBox1.DataSource = Me.Tbl2BindingSource
Me.ComboBox1.DisplayMember = "SomeColumn"
Me.ComboBox1.ValueMember = "SomeColumn"

重要な場合は、DataSetから来Access Databaseます。

4

2 に答える 2

4

SelectedValueプロパティと組み合わせて使用​​されValueMemberますが、配列リストには説明フィールドがないため、機能しません。

SelectedItemバインディングに使用してみてください:

Me.ComboBox.DataBindings.Add(New Binding("SelectedItem", _
                                      Me.TblBindingSource, "ColumnName", True))
于 2012-07-11T15:07:55.830 に答える
0

この質問は古いと思いますが、同様の問題を解決しました。コンボボックスのtextプロパティを、コンボボックスデータソースの値メンバーまたは表示メンバーに関連するバインドソースメンバーにバインドしました。コンボボックスのデータバインディングテキストの前に、必ずデータテーブル(ソースとコンボボックスのデータソースをバインドするため)に入力し、コンボボックスをそのデータソースにバインドしてください。

Dim dtForBindingSource as DataTable
Dim bs as BindingSource
Dim dtForComboBox as DataTable

'Code to fill dtForBindingSource would go here

bs.DataSource = dtForBindingSource

'Code to fill dtForComboBox would go here

ComboBox.DataSource = dtForComboBox
ComboBox.DisplayMember = "ColumnToDisplay"
ComboBox.ValueMember = "ColumnXYZ"

'データソースが存在し、コンボボックスが設定されたので、データバインディングを実行します。

ComboBox.DataBindings.Add("Text", bs, "ColumnToDisplay")
于 2016-06-03T22:26:22.727 に答える