コンボボックスに選択肢を正しく追加されない
Q&A
Closed
解決したいこと
コンボボックスに 値 と 表示名 を入れたいです。
選択肢が合計4つがあります。
うまく追加されないので、私のソースコードはどこが間違っているかを知りたいです。
該当するソースコード
// コンボボックス表示用クラス
private class ComboBoxDataSource
{
/// <summary>
/// データ
/// </summary>
public string Value { get; set; }
/// <summary>
/// 表示内容
/// </summary>
public string DispValue { get; set; }
}
private void SetCombo()
{
ComboBoxDataSource Ptn = new ComboBoxDataSource(); //コンボボックスの選択肢
List<ComboBoxDataSource> PtnList = new List<ComboBoxDataSource>(); //コンボボックスの選択肢をリスト化
/*-- コンボボックスの値と表示名を設定 --*/
string[] ValueArr = { "01", "02", "03", "04" }; //値の配列
string[] DispValueArr = { "リンゴ", "イチゴ", "オレンジ", "バナナ" }; //表示名の配列
//上記2つの配列をループ文で選択肢として追加する
for (int i = 0; i < ValueArr.Length; i++)
{
Ptn.Value = ValueArr[i];
Ptn.DispValue = DispValueArr[i];
PtnList.Add(Ptn);
}
cbo.DataSource = PtnList;
cbo.ValueMember = "Value";
cbo.DisplayMember = "DispValue";
}
期待結果
コンボボックスの選択肢
リンゴ
イチゴ
オレンジ
バナナ
現在の結果
バナナ
バナナ
バナナ
バナナ
自分で試したこと
下記のように修正すれば正しく設定できます。
自分のソースコードの問題はなぜできないかがわかりません。
// コンボボックス表示用クラス
private class ComboBoxDataSource
{
/// <summary>
/// データ
/// </summary>
public string Value { get; set; }
/// <summary>
/// 表示内容
/// </summary>
public string DispValue { get; set; }
}
private void SetCombo()
{
//ComboBoxDataSource Ptn = new ComboBoxDataSource(); //コンボボックスの選択肢
List<ComboBoxDataSource> PtnList = new List<ComboBoxDataSource>(); //コンボボックスの選択肢をリスト化
/*-- コンボボックスの値と表示名を設定 --*/
string[] ValueArr = { "01", "02", "03", "04" }; //値の配列
string[] DispValueArr = { "リンゴ", "イチゴ", "オレンジ", "バナナ" }; //表示名の配列
for (int i = 0; i < ValueArr.Length; i++)
{
//コンボボックスをインスタンス化処理をここに置くと、コンボボックスが正しく設定される
ComboBoxDataSource Ptn = new ComboBoxDataSource(); //コンボボックスの選択肢
Ptn.Value = ValueArr[i];
Ptn.DispValue = DispValueArr[i];
PtnList.Add(Ptn);
}
cbo.DataSource = PtnList;
cbo.ValueMember = "Value";
cbo.DisplayMember = "DispValue";
}
よろしくお願いします。
0