每个项目有两个单独的文本字段的组合框

本文关键字:文本 字段 组合 单独 两个 项目有 | 更新日期: 2023-09-27 18:18:35

我想每个项目存储两个项目,例如名称和描述。在组合框中,选中的项目将显示名称,标签将显示项目的描述,每当选中的项目被更改时,标签需要更新。

我下面的代码似乎存储了项目,但没有根据所选索引或每当项目选择更改时显示它们!

ComboboxItem item = new ComboboxItem();
            item.Text = "A1";
            item.Value = "A2";
            comboBox1.Items.Add(item);
            item.Text = "B1";
            item.Value = "B2";
            comboBox1.Items.Add(item);

            comboBox1.SelectedIndex = 0;
            label1.Text = (comboBox1.SelectedItem as ComboboxItem).Value.ToString();

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            label1.Text = (comboBox1.SelectedItem as ComboboxItem).Value.ToString();
        }

和Class with:

    public class ComboboxItem
    {
        public string Text { get; set; }
        public object Value { get; set; }
        public override string ToString()
        {
            return Text;
        }
    }

每个项目有两个单独的文本字段的组合框

ComboBoxItem为引用类型。您必须先创建新项目,然后再将其添加到comboBox1项目中,否则它也会更改先前添加的项目。

修改这部分

ComboboxItem item = new ComboboxItem();
item.Text = "A1";
item.Value = "A2";
comboBox1.Items.Add(item);
// Will change value of item thus item added to combo box will change too because the references are same
item.Text = "B1"; 
item.Value = "B2";
comboBox1.Items.Add(item);

ComboboxItem item = new ComboboxItem();
item.Text = "A1";
item.Value = "A2";
comboBox1.Items.Add(item);
ComboboxItem item2 = new ComboboxItem();
item2.Text = "B1";
item2.Value = "B2";
comboBox1.Items.Add(item2);