Amo*_*tir 3 c# combobox winforms
我正在从一个类的实例中填充C#中的ComboBox.如何通过检索对相应对象的引用来获取所选项?我已经使用了SelectedValue,SelectedItem,SelectedIndex,但它们都返回了我的对象的字符串表示.
谢谢
[编辑]
一段代码,以显示我正在尝试做的事情:
填充部分:
foreach (Business.IAuteur auteur in _livreManager.GetAuthors())
{
comboAuthor.Items.Add(auteur);
}
Run Code Online (Sandbox Code Playgroud)
单击保存按钮时激活的检索部分:
private void btnSave_Click(object sender, EventArgs e)
{
Business.IAuteur auteur = new Business.Auteur();
auteur = (Business.IAuteur)comboAuthor.SelectedValue;
// A short verification that my item has been correctly
// retrieved
toolStripStatusLabel1.Text = auteur.Nom;
}
Run Code Online (Sandbox Code Playgroud)
错误消息,指向此处:toolStripStatusLabel1.Text = auteur.Nom;
你调用的对象是空的.
如果SelectedItem
要返回一个string
对象,那么您将使用字符串填充ComboBox.如果ToString
在POCO中覆盖,ComboBox将在返回所需对象时自动显示该值SelectedItem
.
如MSDN中所述,您还应该Equals
在POCO中覆盖,以便在必要时可以在Items集合中找到它.
编辑: 解决您的代码.添加到ComboBox时
丢失.ToString()
呼叫并遵循上面的建议.