阅读c#组合框文本和值?

阅读c#组合框文本和值?,c#,combobox,C#,Combobox,我编写此代码是为了将值和文本保存到组合框中: public class ComboboxItem { public string Text { get; set; } public object Value { get; set; } public override string ToString() { return Text; } } 使用上述代码,当用户启动按钮组合框时,我希望文本保存到列表框1,id保存到列表框2,但最新的值显

我编写此代码是为了将值和文本保存到组合框中:

public class ComboboxItem
{
    public string Text { get; set; }
    public object Value { get; set; }

    public override string ToString()
    {
        return Text;
    }
}


使用上述代码,当用户启动按钮组合框时,我希望文本保存到列表框1,id保存到列表框2,但最新的值显示出来。

您的问题是您应该在
for
循环中定义
项,当您当前为查询中的每个结果向组合框添加同一项时,同时更新该项的文本和值以匹配当前查询结果。在循环结束时,您将看到一个
组合框
,其中包含完全相同的项,所有项都等于查询中的最后一项。以下是代码的外观:


首先,如果您知道所选项目是
ComboboxItem
,那么将
用作
没有意义。明确的演员阵容在意图上更清晰。其次,直接从
ComboboxItem
读取值更安全,而不是假设
ComboxBox
文本始终包含绑定项的
文本ᶜKenzie感谢我的朋友关注我的问题,我用两个字段读取数组日期,id和标题,id保存到组合框值,标题保存到组合框文本中,但当我读取数据时,我看到将最新数组值保存到组合框项无需担心!我的第一个评论是不正确的,因为我没有阅读整个问题。您需要在
for
循环中定义
item
,因为当前每次循环都会覆盖
item
的属性,因此最终会出现一个组合框,其中包含一组相同的项(因为它们都是相同的项)@西蒙姆ᶜ肯齐谢谢你的帮助,请把你的代码写进帖子里,我投票支持你的帖子!我还根据我的第一条(删除的)评论提出了一些建议。
ComboboxItem item = new ComboboxItem();
for (int i = 0; i < query.Count(); i++)
{
    item.Text = query[i].gaptitle1.ToString();
    item.Value = query[i].id.ToString();

    comboBox2.Items.Add(item);
 }
listBox1.Visible = true;
listBox1.Items.Add(comboBox2.Text);
listBox2.Items.Add((comboBox2.SelectedItem as ComboboxItem).Value.ToString());
for (int i = 0; i < query.Count(); i++)
{
    ComboboxItem item = new ComboboxItem();
    item.Text = query[i].gaptitle1.ToString();
    item.Value = query[i].id.ToString();

    comboBox2.Items.Add(item);
 }
listBox1.Visible = true;
var selectedItem = (ComboboxItem)comboBox2.SelectedItem;
listBox1.Items.Add(selectedItem.Text);
listBox2.Items.Add(selectedItem.Value);