1

DataGrid、私は 1 つ持っていDataGridViewComboBoxColumnます。コードで 、items 、value メンバー、および display メンバーDataTableとして割り当てましたが、プログラムを実行すると空で表示されます。ドロップダウンがまったく機能しません。DataSourceComboBox

ただし、DataSource適切に設定されたことを示す値を適切に割り当てます。つまり、値を割り当てると、正しい表示メンバーがフェッチされます。

他の関連投稿に基づいて私がすでに試したこと - [まったく同じように動作する] の代わりに使用Listする- [正常に動作する] の代わりに使用する-オブジェクトを介して使用する - 「読み取り専用」をチェック = すべての行、列、セルで false . - 予防措置として、特定の列の関数に「読み取り専用」= false を割り当て、そうである場合はを設定します。DataTableenumDataTableDataTableBindingSourcecell_enterDataSourcenull

[または列] をデバッグで見る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()];
4

2 に答える 2

0

追加:patientGrid.Rows[rowIndex].Cells[5].ReadOnly = false;

于 2013-01-05T16:00:21.340 に答える