私は次のコードを持っています:
public partial class ModificarAlimento : Form
{
private Alimento alim;
private Dictionary<string, Nutriente> nutrientes;
public ModificarAlimento(Alimento a, Dictionary<string, Nutriente> nut)
{
InitializeComponent();
this.nutrientes = nut;
alim = a;
int i = 0;
foreach (KeyValuePair<string, CantidadNutrientes> x in alim.Nutrientes)
{
ComboBox n = new ComboBox();
n.DropDownStyle = ComboBoxStyle.DropDownList;
n.Location = new Point(12, 25 * (i + 1) + 80);
n.DataSource = new BindingSource(nutrientes, null);
n.DisplayMember = "Key";
n.ValueMember = "Value";
TextBox cNuts = new TextBox();
cNuts.Location = new Point(150, 25 * (i + 1) + 80);
cNuts.Size = new Size(50, cNuts.Size.Height);
cNuts.Text = x.Value.Cantidad.ToString();
this.Controls.Add(n);
this.Controls.Add(cNuts);
i++;
n.SelectedValue = x.Value.Nutriente;
}
}
private void ModificarAlimento_Load(object sender, EventArgs e)
{
}
}
今。問題はここにあります:
n.SelectedValue = x.Value.Nutriente;
各Alimento
(Food)にはCantidadNutrientes
、double値を格納する辞書セットとNutriente
(Nutrient)があり、名前が格納されます。だから、
x.Value.Nutriente
xに保存されているCantidadNutrientesの栄養素を取得します。
なぜこれが機能しないのですか?どんな助けでも大歓迎です。
編集:私もこれを試しています
n.SelectedIndex = n.FindStringExact(x.Key);
//and
n.SelectedValue = n.FindStringExact(x.Value.Nutriente.Nombre);
ただし、いくつかの奇妙な理由で、デバッグ中には機能しますが、行ごとに調べないと、まったく機能しません。