这里我要告诉你我正在处理的内容,之后出现我的问题。我想告诉你们我在做什么...所以你们可以更好地理解我的问题。使用Winforms将对象字符串转换为C#中的对象(类)
在此先感谢,
我正在进行一个项目。这个应用程序是一个杂货店计算器。我有一个叫做Artikel的课。这个类是我的其他派生类的基类,例如(蔬菜,饮料,温食品等)。
我从我的数据库中获得了一个充满数据的组合框。我想要做的是将每个产品的价格添加到“总成本购物车”中。我的基类是这样的:
class Artikel
{
// properties
private string naam;
private double prijs;
private string winkel;
// properties
public string Naam
{
get { return naam; }
set { naam = value; }
}
public double Prijs
{
get { return prijs; }
set { prijs = value; }
}
public string Winkel
{
get { return winkel; }
set { winkel = value; }
}
// constructor
public Artikel(string naam, double prijs, string winkel)
{
this.Naam = naam;
this.Prijs = prijs;
this.Winkel = winkel;
}
// methods
public override string ToString()
{
string info = "€ " + Prijs;
return info;
}
从我的主要形式,我使用此代码,将其添加到我的组合框:
foreach(var g in database.GetGroenteInfo())
{
cbGroentenLidl.Items.Add(g.Naam);
}
当ComboBox是充满“蔬菜”的数据,我可以选择项目。从这里我可以用这个代码所选择的项目添加到我的“lbLidlKosten”:
lbLidlKosten.Items.Add(cbGroentenLidl.SelectedItem);
现在,我的数据是正确的,我想它..这里是问题。现在我想将添加到列表框中的每个产品的价格添加到我的标签。基本上,我添加到“lbLidlKosten”的产品越多,我的成本在label.text中的增长就越多。我希望你明白我的意思。
我尝试以下,以获得一个工作:
artikelList = database.GetGroenteInfo();
//foreach (Artikel a in artikelList)
//{
// label2.Text = Convert.ToString(a.Prijs);
// label2.Text = cbGroentenLidl.SelectedItem;
//}
//foreach (Artikel a in lbLidlKosten.Items)
//{
// label2.Text = a.Prijs.ToString();
//}
//Artikel artikel = (Artikel)cbGroentenLidl.SelectedItem;
//label2.Text = artikel.Prijs.ToString();
foreach (Artikel a in lbLidlKosten.Items)
{
label2.Text = Convert.ToString(a.Prijs);
}
所有这些解决方案将无法正常工作。因为我收到错误: “无法将对象字符串转换为对象Artikel”。
有没有人有线索?这可能很简单..但我找不到它,并在最后3天内卡住了。
随着亲切的问候
也许它可以工作。但这一切都失败的地方是不成熟的。当它试图循环在每个artikel在我的列表或组合框中的每个artikel ..我得到的错误“无法将对象字符串转换为对象Artikel(类) –