でDataGrid
、私は 1 つ持っていDataGridViewComboBoxColumn
ます。コードで 、items 、value メンバー、および display メンバーDataTable
として割り当てましたが、プログラムを実行すると空で表示されます。ドロップダウンがまったく機能しません。DataSource
ComboBox
ただし、DataSource
適切に設定されたことを示す値を適切に割り当てます。つまり、値を割り当てると、正しい表示メンバーがフェッチされます。
他の関連投稿に基づいて私がすでに試したこと - [まったく同じように動作する] の代わりに使用List
する- [正常に動作する] の代わりに使用する-オブジェクトを介して使用する
- 「読み取り専用」をチェック = すべての行、列、セルで false . - 予防措置として、特定の列の関数に「読み取り専用」= false を割り当て、そうである場合はを設定します。DataTable
enum
DataTable
DataTable
BindingSource
cell_enter
DataSource
null
[または列] をデバッグで見るDataGridViewComboBoxCell
と、アイテムが入力されていることがわかります。私は本当にアイデアがありません。どんな助けも大歓迎です。役立つ場合は、いくつかのコードスニペットを貼り付けました
DataTable data = new DataTable();
data.Columns.Add(new DataColumn("Value", typeof(string)));
data.Columns.Add(new DataColumn("Description", typeof(string)));
data.Rows.Add("en_US", "English-US");
data.Rows.Add("de", "german-Germany");
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).Items.Add("English-US");
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).Items.Add("german-Germany");
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).ValueType = typeof(string);
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).DataSource = data;
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).ValueMember = "Value";
(patientGrid.Columns[5] as DataGridViewComboBoxColumn).DisplayMember = "Description";
//setting value
(patientGrid.Rows[rowIndex].Cells[5] as DataGridViewComboBoxCell).Value =
clientLanguagePreference[cmbClients.SelectedItem.ToString()];