私はDataGridView
を持つWinformsアプリケーションを構築しています。 DataGridViewはデータソースにバインドされていません。私はdatatable
を使用して設定している私のグリッドにcomboboxColumn
を持っています。c#DatagridviewComboBoxCellの選択値を取得
comboBoxCellのselectedValueを取得しようとすると、正確に選択された値の代わりに最初に一致した値が返されます。
Convert.ToString((datagridview1.Rows[i].Cells["columnName"] as DataGridViewComboBoxCell).Value)
は、例えば、 コンボボックスのデータテーブルは、私はID 4444でアップルを選択した場合、上記のコードは、私が実行しようとしました2222
でアップルを取得し、今
DisplayMember ValueMember Orange 1111 Apple 2222 Banana 3333 Apple 4444 Guava 5555
です次のリンクに記載されている手順ではなく、値の代わりにインデックスを指定しています。
https://stackoverflow.com/a/30157754/3619679
あなたが 'DataGridView1.Rows [i] .Cells [" columnName "]を呼び出すとどうなるでしょうか?テストのためだけに。いつも私が書いたように使っています。多分この場合、それは働くでしょう。そして、あなたは 'ValueMember'を必ず入れてください。 –
はい、私はそれを試みました。しかし、異なるValueMember IDを持つ値が重複している場合、実際に選択された値の代わりにcomboxlistの最初の値が返されます。 – dsouzaleo