我从一个类的实例填充C#中的ComboBox.
如何通过检索对相应对象的引用来获取所选项目?
我已经使用了SelectedValue,SelectedItem,SelectedIndex,但是它们都返回了我对象的字符串表示形式.
谢谢
[编辑]
一段代码,展示我正在尝试做的事情:
填充部分:
foreach (Business.IAuteur auteur in _livreManager.GetAuthors())
{
comboAuthor.Items.Add(auteur);
}
检索部分,在单击保存按钮时激活:
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;
}
错误消息,指向此处:toolStripStatusLabel1.Text = auteur.Nom;
Object reference not set to an
instance of an object.
解决方法:
如果SelectedItem
返回一个字符串对象,则将用字符串填充ComboBox.如果在POCO中覆盖ToString,则ComboBox将自动显示该值,同时返回带有SelectedItem的所需对象.
如MSDN中所述,您还应该在POCO中覆盖Equals,以便在必要时可以在Items集合中找到它.
编辑:解决您的代码.
添加到ComboBox时丢失.ToString()调用,并按照上面的建议进行操作.