我在 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
正在返回一个 string
对象,然后您将使用字符串填充您的 ComboBox。如果您在 POCO 中覆盖 ToString
,ComboBox 将自动显示该值,同时使用 SelectedItem
返回所需的对象。
如 MSDN 中所述,您还应该覆盖 POCO 中的 Equals
,以便在必要时可以在 Items 集合中找到它。
编辑处理您的代码。
添加到 ComboBox 时丢失 .ToString()
调用并遵循我上面的建议。
关于C# - 如何从组合框中检索对对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343616/