2011-07-30 22 views
0

我有一个客户列表。绑定列表框时出现错误,项目的值为空值!

Customer是由Linq To SQL Data Context生成的对象。

我也有一个ListBox。我已将DisplayMember设置为“名称”,将ValueMember设置为“ID”。

但是当我试图做到以下几点:显示

private void FillList(List<Customer> list) 
    { 
     lstCustomers.Items.Clear(); 

     foreach (Customer c in list) // list here is the List<Customer> object 
     { 
      lstCustomers.Items.Add(c); 
     } 
    } 

列表项正确(客户的名字),但列表项的值(ID)是空!

我的问题是为什么他们是空值?

回答

0

((客户)lstCustomers.SelectedItem).ID

+0

不,这不是我的问题。 SelectedValue为null –

+0

如果我在选择SelectedValue后正确理解了它,它将返回null。如果是这种情况检查它,客户的属性是相同的ID,而不是ID或ID。或者如果列表返回你的id值。 – thewayman

+0

您也可以使用((客户)lstCustomers.SelectedItem).id查看它是否有效。 – thewayman

1

我相信你必须设置列表框的数据源才能工作。

lstCustomers.DataSource = list; 

您可能刚刚看到显示在列表框中的Customer对象的ToString()

+0

的问题是,我不希望设置数据源的辩论,因为这阻止我的项目在列表框处理,除非它没有一个数据源,即我想到了什么! –

+0

我同意@orn在这里。也许你可以在你的问题中解释为什么设置'listCustomers.DataSource'不适合你?即使使用“DataSource”属性集,您通常也可以“处理”ListBox中的项目。 – ckittel

+0

@ckittel,例如,如果试图从数据源设置时从列表框中删除项目,我得到一个运行时错误,说我无法在设置数据源时更改项目! –

相关问题