【发布时间】:2018-04-21 06:43:05
【问题描述】:
我正在尝试用公司列表填充我的组合框,然后将所选公司的价值(其Id)输入我的数据库。
我有这门课CBItem:
public class CBItem
{
public string Name { get; set; }
public int Value { get; set; }
public override string ToString()
{
return Name;
}
}
我使用这个将项目添加到组合框:
using (var db = new DataContext())
{
var list_of_companies = db.Companies;
foreach (Company c in list_of_companies)
{
CBItem item = new CBItem();
item.Name = c.Name;
item.Value = c.Id;
comboBox1.Items.Add(item);
}
}
问题是当我想获得所选项目的价值时,我尝试过这样的事情:
new_person.Company.Id = (comboBox1.SelectedItem).Value;
当然不行:/有什么建议吗?
【问题讨论】:
-
什么样的“行不通”?不编译?错误的价值?空?
-
据我了解,我将 CBItem 类的对象添加到组合框列表中。这些对象应该具有我应该能够使用的属性名称和值。
-
我得到这个信息:'object'不包含'Value'的定义,并且找不到接受'object'类型的第一个参数的扩展方法'Value'
-
您可能需要将
SelectedItem返回的object转换为CBItem -
我试过这个:new_person.Company.Id = (comboBox1.SelectedItem as CBItem).Value;但我得到: System.NullReferenceException: '对象引用未设置为对象的实例。'
标签: c# winforms entity-framework combobox