C# - 如何从组合框中检索对对象的引用?

标签 c# winforms combobox

我在 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/

相关文章:

c# - 在 C# 中指定路径时如何返回一个级别?

c# - Xamarin Android 和日期选择器

c# - 将动态创建的位图对象绑定(bind)到 WPF 中的图像

c# - 可以过滤日期但无法过滤日期时间?

c# - WPF:如何使用 ComboBox TextSearch?

c# - 为什么我从类似的 Linq 查询中得到不同的输出?

c# - 事件异常处理

c# - 向图标添加叠加层时出现透明度问题

c# - 如何在运行时用文本和图像填充 WPF 组合框

c# - 如何根据 WPF/XAML 中的 ComboBox 值更改字体大小