C# 购物篮创建什么&x27;她失踪了?

C# 购物篮创建什么&x27;她失踪了?,c#,C#,嗨,我花了一段时间在C#中创建了一个购物篮应用程序,使用Win表单和well。。。我想我撞到墙了。我有5个按钮(添加到项目/删除/全部清除/保存/退出)以及4个列表框(项目名称/价格/项目总数/总值)和数量的数字上/下。它编译得很好,所以我想我有一个清单,我只是缺乏实施或修复的精神能力 1.“我的添加到项目”按钮实际上并没有将项目添加到列表框中,似乎 2.不确定如何使我的“数量”框正确工作(例如项目:胡萝卜数量:2价格:0.30),因此列表框将显示“胡萝卜0.60”) 3.项目总数(由于磅的原因

嗨,我花了一段时间在C#中创建了一个购物篮应用程序,使用Win表单和well。。。我想我撞到墙了。我有5个按钮(添加到项目/删除/全部清除/保存/退出)以及4个列表框(项目名称/价格/项目总数/总值)和数量的数字上/下。它编译得很好,所以我想我有一个清单,我只是缺乏实施或修复的精神能力
1.“我的添加到项目”按钮实际上并没有将项目添加到列表框中,似乎
2.不确定如何使我的“数量”框正确工作(例如项目:胡萝卜数量:2价格:0.30),因此列表框将显示“胡萝卜0.60”) 3.项目总数(由于磅的原因,不确定这是否有效)(应该像胡萝卜、冰箱、牛肉一样工作=项目总数的3)
4.总价值(不确定是否因其他原因而起作用,但应计算篮子中的项目并收回金额)

我认为除了这些以外,其他一切都是有效的。。。我将在pastebin链接中以及此处提供我的代码,以便于访问

用户界面

OrderItems类


btnAdd\u单击
-您实际上没有添加任何内容…好的。。我认为“stringitemname=txtItemName.Text;”将添加在该框中键入的任何内容
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ShoppingBasket
{
    public class OrderItems
    {
        // my get setters ctors
        public string ItemName { get; private set; }
        public int NumberOfStock { get; private set; }
        public decimal ReplacementValue { get; private set; }

        public OrderItems(string groceryName, int replacementValue)
        {
            this.ItemName = groceryName;
            this.NumberOfStock = replacementValue;
        }

        public OrderItems()
        {
        }

        public decimal TotalValueReplacer
        {
            get
            {
                return this.NumberOfStock * this.ReplacementValue;
            }
        }

        public int AddStock()
        {
            this.NumberOfStock++;
            return this.NumberOfStock;
        }

        //this adds stock
        public int AddStock(decimal ReplacementValue)
        {
            this.NumberOfStock++;
            this.ReplacementValue = ReplacementValue;
            return this.NumberOfStock;
        }

        //this an individual removal
        public int RemoveStock()
        {
            this.NumberOfStock--;

            //this stops stock going below
            if (this.NumberOfStock < 0)
            {
                this.NumberOfStock = 0;
            }
            return this.NumberOfStock;
        }

        //this removes everything
        public void RemoveAllStock()
        {
            this.NumberOfStock = 0;
        }

        public void Save(string items)
        {

            try
            {
                var filename = @"C:\\Users\\Barry\\Desktop\\receipt.txt";

                System.IO.StreamWriter objWriter;
                using (objWriter = new System.IO.StreamWriter(filename))
                {
                    objWriter.Write(items);
                    objWriter.Close();
                }
            }
            catch (Exception ex)
            {
                var message = ex.Message;
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ShoppingBasket
{
    public class QA
    {
        public List<OrderItems> Oitems { get; set; }

        public int StockTotal
        {
            get
            {
                int stock = 0;
                foreach (OrderItems oi in Oitems)
                {
                    stock += oi.NumberOfStock;
                }
                return stock;
            }
        }

        public decimal FinalReplacementValue
        {
            get
            {
                decimal GroceryReplaceValue = 0.0m;
                foreach (OrderItems o in Oitems)
                {
                    GroceryReplaceValue += o.TotalValueReplacer;
                }
                return GroceryReplaceValue;
            }
        }



        public void AddItem(string groceryName, int ReplacementValue)
        {
            for (int i = 0; i < Oitems.Count; i++)
            {
                //is item already added
                if (Oitems[i].ItemName == groceryName)
                {
                    Oitems[i].AddStock(ReplacementValue);
                    return;
                }
            }

            //adds if already an item
            OrderItems oi = new OrderItems(groceryName, ReplacementValue);
            Oitems.Add(oi);
        }

        public void DropItem(string groceryName)
        {
            for (int i = 0; i < Oitems.Count; i++)
            {
                //is item already addded
                if (Oitems[i].ItemName == groceryName)
                {
                    Oitems[i].RemoveStock();
                    return;
                }
            }
            throw new InvalidOperationException(string.Format("item {0} is invalid", groceryName));
        }

        public void RemoveItem(string groceryName)
        {
            for (int i = 0; i < Oitems.Count; i++)
            {
                if (Oitems[i].ItemName == groceryName)
                {
                    Oitems.RemoveAt(i);
                    return;
                }
            }
        }

        public void RemoveAllItem()
        {
            Oitems.Clear();
        }

    }
}
    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ShoppingBasket
{
    public partial class ShoppingWindow : Form
    {

        private QA basket = new QA();

        public ShoppingWindow()
        {
            InitializeComponent();
        }


        private void txtItemName_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            string itemName = txtItemName.Text;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {

            var items = "";
            foreach (var item in lbItems.SelectedItems)
            {
                items += item.ToString();
                items += "\n";
            }

            var order = new OrderItems();
            order.Save(items);

            MessageBox.Show("Receipt saved.");

        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
            if (lbItems.SelectedIndex >= 0)
            {
                //item selected
                OrderItems oi = basket.Oitems[lbItems.SelectedIndex];
                basket.RemoveItem(oi.ItemName);
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            basket.RemoveAllItem();
            MessageBox.Show("All Items removed.");
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }


    }
}