首先,我们需要创建一个商品类和订单类。

商品类:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

订单类:

public class Order
{
    public int Id { get; set; }
    public DateTime Date { get; set; }
    public List<OrderItem> Items { get; set; }
    public decimal Total { get; set; }
}

public class OrderItem
{
    public Product Product { get; set; }
    public int Quantity { get; set; }
    public decimal Subtotal { get { return Quantity * Product.Price; } }
}

接下来,我们创建一个窗体,并添加一个ListBox控件用于显示订单列表。我们还需要添加一些文本框和按钮用于添加、删除和修改订单。

public partial class Form1 : Form
{
    private List<Order> orders = new List<Order>();

    public Form1()
    {
        InitializeComponent();

        listBox1.DataSource = orders;
        listBox1.DisplayMember = "Id";
    }

    private void btnAddOrder_Click(object sender, EventArgs e)
    {
        Order order = new Order();
        order.Id = orders.Count + 1;
        order.Date = DateTime.Now;
        order.Items = new List<OrderItem>();
        orders.Add(order);

        listBox1.DataSource = null;
        listBox1.DataSource = orders;
        listBox1.DisplayMember = "Id";
    }

    private void btnDeleteOrder_Click(object sender, EventArgs e)
    {
        Order order = listBox1.SelectedItem as Order;
        orders.Remove(order);

        listBox1.DataSource = null;
        listBox1.DataSource = orders;
        listBox1.DisplayMember = "Id";
    }

    private void btnAddItem_Click(object sender, EventArgs e)
    {
        Order order = listBox1.SelectedItem as Order;
        Product product = new Product();
        product.Id = orders.Count + 1;
        product.Name = txtProductName.Text;
        product.Price = decimal.Parse(txtProductPrice.Text);

        OrderItem item = new OrderItem();
        item.Product = product;
        item.Quantity = int.Parse(txtQuantity.Text);
        order.Items.Add(item);

        order.Total = order.Items.Sum(x => x.Subtotal);

        listBox1.DataSource = null;
        listBox1.DataSource = orders;
        listBox1.DisplayMember = "Id";
    }

    private void btnDeleteItem_Click(object sender, EventArgs e)
    {
        Order order = listBox1.SelectedItem as Order;
        OrderItem item = order.Items[listBox2.SelectedIndex];
        order.Items.Remove(item);

        order.Total = order.Items.Sum(x => x.Subtotal);

        listBox2.DataSource = null;
        listBox2.DataSource = order.Items;
        listBox2.DisplayMember = "Product.Name";
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (listBox1.SelectedItem != null)
        {
            Order order = listBox1.SelectedItem as Order;
            listBox2.DataSource = order.Items;
            listBox2.DisplayMember = "Product.Name";
        }
    }
}

在代码中,我们使用List集合来存储订单信息,并将其绑定到ListBox控件上。当添加、删除或修改订单时,我们只需要更新List集合的内容,并重新绑定到ListBox控件上即可。

在添加订单项时,我们首先创建一个商品对象并添加到订单项中,然后将订单项添加到订单中。在删除订单项时,我们只需要从订单项集合中移除相应的订单项即可。

最后,在ListBox的SelectedIndexChanged事件中,我们判断当前选中的订单并将其订单项绑定到另一个ListBox控件中显示。

通过上述操作,我们就可以实现商品的销售和退货订单功能,并通过databinding在列表中显示。

c#中用winform,使用面向对象的编程思想,实现商品的销售和退货订单功能并通过databinding在列表中显示,操作数据显示列表使用ListBox

原文地址: http://www.cveoy.top/t/topic/r9V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录