【发布时间】:2014-04-06 09:01:33
【问题描述】:
您好,我正在尝试使用来自另一个名为 produkt 的具有 3 个字符串值的类的对象的值填充我的列表框。列表框中的每个项目都应该有产品名称、序列号和价格,如果列表框中已经包含具有相同产品名称或商品编号的项目,我希望弹出一个消息框。我的问题是,当我尝试使用我的 List.Add(newProduct) 将对象作为包含这些值的字符串添加到我的列表框时,它不会转到我的列表框,当我尝试打印它时,它会显示 Mediastore.produkt。我尝试了许多不同的方法来解决这个问题,我用 toString 尝试将我的对象的值变成一个字符串。 有什么想法可以让我的列表框显示列表的内容吗?
public void NewProdct_Click(object sender, EventArgs e)
{
string productname;
string warenumber;
string Price_;
productname = ProdNamn.Text;
warenumber = Varu_Nr.Text;
Price_ = pris_.Text;
List<produkt> List = new List<produkt>();
if(List.Any( produkt => produkt.Name == productname || produkt.Serialnumber == warenumber))
{
MessageBox.Show("Product with that name or warenumber");
return;
}
var newProdukt = new produkt()
{
Name = productname,
Serialnumber = warenumber,
price = Price_
};
string random;
random = newProdukt.Name + newProdukt.price + newProdukt.Serialnumber ;
List.Add(newProdukt);
Console.WriteLine(newProdukt);
}
【问题讨论】:
-
您是否在列表框中设置了 DisplayMember 和 ValueMember?
-
不,我没有,但我不知道该怎么做,因为我声明我的 Lista(列表框)是一个产品列表。如果我改变它,我的 if(Lista.Any( produkt => produkt.Name == productname || produkt.Serialnumber == warenumber)) 不会停止工作吗?
-
不,它会正常工作,只需设置您的 listbox.DispalyMember = "Name" 和 listbox.ValueMember="SerialNumber" 并且您还有另一个选项覆盖 produkt 中的 ToString 并返回 Name;