Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Winforms在C中将对象字符串转换为对象(类)_C#_Winforms_Combobox_Listbox_Converter - Fatal编程技术网

C# 使用Winforms在C中将对象字符串转换为对象(类)

C# 使用Winforms在C中将对象字符串转换为对象(类),c#,winforms,combobox,listbox,converter,C#,Winforms,Combobox,Listbox,Converter,在这里,我要告诉你我在做什么,然后我的问题来了。我想告诉你们我在做什么。。所以你们可以更好地理解我的问题 提前感谢, 我正在做一个项目。这个应用程序是一个杂货计算器。我有一门课叫Artikel。这个类是我的其他派生类的基类,比如蔬菜、饮料、暖食。。等等 我得到了一个组合框,里面装满了数据库中的数据。我想做的是将每个产品的价格添加到总成本购物车中。我的基类如下所示: class Artikel { // properties private string naam; pri

在这里,我要告诉你我在做什么,然后我的问题来了。我想告诉你们我在做什么。。所以你们可以更好地理解我的问题

提前感谢,

我正在做一个项目。这个应用程序是一个杂货计算器。我有一门课叫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);
    }
当组合框充满蔬菜数据时,我可以选择一个项目。从这里,我可以使用以下代码将所选项目添加到我的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

有人有线索吗?这可能很简单。。但是我找不到它,我被困了三天

在此向您致以亲切的问候:

foreach(var g in database.GetGroenteInfo())
{
    cbGroentenLidl.Items.Add(g.Naam);
}
您正在将名称添加到组合框中,而不是项目本身。 也许您可以尝试将项集合绑定到组合框数据源,如下所示:

cbGroentenLidl.DataSource = database.GetGroenteInfo().ToList();
cbGroentenLidl.DisplayMember = "Naam";
然后,当您添加到列表框时,您将拥有对象,而不仅仅是名称。

在这里:

foreach(var g in database.GetGroenteInfo())
{
    cbGroentenLidl.Items.Add(g.Naam);
}
您正在将名称添加到组合框中,而不是项目本身。 也许您可以尝试将项集合绑定到组合框数据源,如下所示:

cbGroentenLidl.DataSource = database.GetGroenteInfo().ToList();
cbGroentenLidl.DisplayMember = "Naam";

然后,当您添加到列表框时,您将拥有对象,而不仅仅是名称。

您也不会增加值。你可以试试这个:

double prijs = 0;
foreach (Artikel a in lbLidlKosten.Items)
{
    prijs += a.Prijs;
}
label2.Text = Convert.ToString(prijis);
如果最后一行不起作用,请尝试以下操作:

label2.Text = "" + prijs;

您也没有增加值。你可以试试这个:

double prijs = 0;
foreach (Artikel a in lbLidlKosten.Items)
{
    prijs += a.Prijs;
}
label2.Text = Convert.ToString(prijis);
如果最后一行不起作用,请尝试以下操作:

label2.Text = "" + prijs;

也许它能起作用。但这一切失败的地方就在前面。当它试图在foreach中循环使用我列表或组合框中的每个artikel时。。我得到一个错误,无法将对象字符串转换为对象字符串,也许它可以工作。但这一切失败的地方就在前面。当它试图在foreach中循环使用我列表或组合框中的每个artikel时。。我得到的错误是无法将对象字符串转换为对象ArtikelclassHey!这正是我想要的。我没有将对象添加到组合框中。非常感谢。我将您的awnser标记为正确的给定awnser。干杯!这正是我想要的。我没有将对象添加到组合框中。非常感谢。我将您的awnser标记为正确的给定awnser。干杯我的应用没那么远。但我也要感谢你的awnser,因为现在我的全部申请已经完成了。为此干杯!我的应用程序没那么远。但我也要感谢你的awnser,因为现在我的全部申请已经完成了。为此干杯!