4

BindingSourceDataGridViewでオブジェクトを使用できることを知っています。

列の1つにコンボボックスを配置し、それでも?を利用することは可能BindingSourceですか?

4

1 に答える 1

8

はい、そうです-C#のDataGridViewでComboBoxを見てください:

DataGridViewでComboBoxを使用することは、もはやそれほど複雑ではありませんが、データ駆動型のソフトウェア開発を行う際にはほぼ必須です。

ここに画像の説明を入力してください

このようなDataGridViewを作成しました。ここで、DataGridViewに「MonthID」と「ItemID」の代わりに「Month」と「Item」を表示したいと思います。

基本的に、この記事で説明しているのは、コンボボックスを個別のバインドソース(この場合は、MonthIDMonthNameが格納されている検証テーブル)でバインドすることです。月の名前は、元のデータのIDに基づいて表示されます。

ここで、彼は月のデータソースを設定し、月のテーブルから選択してBindingSource、返されたデータからを作成します。

//Month Data Source
string selectQueryStringMonth = "SELECT MonthID,MonthText FROM Table_Month";
SqlDataAdapter sqlDataAdapterMonth = new SqlDataAdapter(selectQueryStringMonth, sqlConnection);
SqlCommandBuilder sqlCommandBuilderMonth = new SqlCommandBuilder(sqlDataAdapterMonth);
DataTable dataTableMonth= new DataTable();
sqlDataAdapterMonth.Fill(dataTableMonth);
BindingSource bindingSourceMonth = new BindingSource();
bindingSourceMonth.DataSource = dataTableMonth;

DataSource次に、上記でBindingSource作成したように、月ComboBoxColumnをDataGridViewに追加します。

//Adding  Month Combo
DataGridViewComboBoxColumn ColumnMonth = new DataGridViewComboBoxColumn();
ColumnMonth.DataPropertyName = "MonthID";
ColumnMonth.HeaderText = "Month";
ColumnMonth.Width = 120;
ColumnMonth.DataSource = bindingSourceMonth;
ColumnMonth.ValueMember = "MonthID";
ColumnMonth.DisplayMember = "MonthText";
dataGridViewComboTrial.Columns.Add(ColumnMonth);

そして最後に、彼はDataGridViewを元のデータにバインドします。

于 2012-12-11T22:39:14.973 に答える