【发布时间】:2020-01-05 22:53:54
【问题描述】:
编辑/更新!!!
我想更新问题,因为下面的答案只是引导我朝着正确的方向前进,但并没有完全解决问题。
但是我确实通过改变物品的方式解决了这个问题,希望这对未来的人有所帮助
像这样将项目添加到类列表中
descriptionclb.Items.Add(new listItem { Name = ItemToAdd, Price = Convert.ToDouble(ItemPrice), Quantity = Convert.ToDouble(Quantity.Text) });
然后像这样迭代项目
foreach (Listitem item in descriptionclb.Items)
{
double TotalAmmount = item.Price);
//Do stuff with Item
}
我试图在列表框中获取列表项的值,但一直收到错误消息“'System.InvalidCastException' 无法将 'System.String' 类型的对象转换为 'list' 类型。”
任何帮助都将不胜感激,并且我尝试进行大量研究但没有结果(也许我没有在谷歌上正确表达问题)。请参阅下面的代码。
类列表项
public class listItem
{
public string Name { get; set; }
public double Price { get; set; }
public double Quantity { get; set; }
public override string ToString()
{
return Name;
}
}
我在这里插入值
Globals.li.Name = ItemToAdd;
Globals.li.Price = Convert.ToDouble(ItemPrice);
Globals.li.Quantity = Convert.ToDouble(Quantity.Text);
descriptionclb.Items.Add(Globals.li.ToString());
Globals 是一个全局类,li 是 listitem li = new listItem
我在这里得到错误
foreach (var item in descriptionclb.Items)
{
double TotalAmmount = Convert.ToDouble(((list)item).Price);
}
【问题讨论】:
-
将 ListBox 的 DataSource 设置为您的
List<listItem>。 DisplayMember =listItem.Name。设置ValueMember,是必需的。现在,ListBox 的每个 Item 都是一个可以转换的listItem对象。