如何在listview中保存其他格式

时间:2018-04-19 11:13:30

标签: c# visual-studio listview

我在listview中遇到问题,因为无论何时我以其他形式获取值,它都不会在列表中添加,但是当我放置断点时它有一个值但仍未添加到我的列表视图中。

这是我在form1中从datagridview获取值的函数

public void dataGridView1_DoubleClick(object sender, EventArgs e)
    {
        qtyOfOrders orders = new qtyOfOrders();
        if (dataGridView1.SelectedRows.Count > 0)
        {
            String mealname = dataGridView1.SelectedRows[0].Cells[1].Value + String.Empty;
            String price1 = dataGridView1.SelectedRows[0].Cells[2].Value + String.Empty;
            pts.meal = mealname;
            pts.qtyprice = Int32.Parse(price1);
            orders.Show();
        }
    }

这是我在form2中的函数,它将在list1中的数据保存在form1

private void OK_Click(object sender, EventArgs e)
    {
        cashier c = new cashier();
        pricetempstorage pts = new pricetempstorage(); //class
            int qty = Int32.Parse(QTYNumber.Text);
            int totalPrice = qty * pts.qtyprice;
        pts.qtynumber = qty;
        pts.TotalPrice = totalPrice;
        c.listView1.Items.Add(pts.meal);
        c.qtyOrder.ListView.Items[0].SubItems.Add(pts.qtynumber.ToString());
       c.price111.ListView.Items[0].SubItems.Add(pts.TotalPrice.ToString());
        this.Hide();
    }

这是我的班级

namespace jollibee4
{
class pricetempstorage
{
    static int qtyNumber;
    static int qtyPrice;
    static  int ListViewCount;
    static String Meal;
    static int totalprice;
    public int TotalPrice
    {
        get
        {
            return totalprice;
        }
        set
        {
            totalprice = qtyNumber * qtyPrice;
        }
    }
    public int qtynumber
    {
        get
        {
            return qtyNumber;
        }
        set
        {
            qtyNumber = value;
        }
    }
    public int qtyprice
    {
        get
        {
            return qtyPrice;
        }
        set
        {
            qtyPrice = value;
        }
    }
    public int listviewCount
    {
        get
        {
            return ListViewCount;
        }
        set
        {
            ListViewCount = value;
        }
    }
    public String meal
    {
        get
        {
            return Meal;
        }
        set
        {
            Meal = value;
        }
    }
}
}

3 个答案:

答案 0 :(得分:0)

<强> Form1中

    public List<pricetempstorage> Items { get; private set; }

    private void OK_Click(object sender, EventArgs e)
        {
            cashier c = new cashier();
            pricetempstorage pts = new pricetempstorage(); //class
            int qty = Int32.Parse(QTYNumber.Text);
            int totalPrice = qty * pts.qtyprice;
            pts.qtynumber = qty;
            pts.TotalPrice = totalPrice;
            Items.Add(pts);
            this.Hide();
        }

创建一个购物车类,其中的项目可以在列表中追加 我假设pricetempstorage是你的项目类,它的名字可以是产品

    public static ShoppingCart GetInstance()
    {

        if (cart == null)
        {
            cart = new ShoppingCart();
        }

        return cart;
    }

    protected ShoppingCart()
    {
        Items = new List<pricetempstorage>();
    } 

答案 1 :(得分:0)

尝试在this.listView1.View = View.Details;

之后添加此代码c.listView1.Items.Add(pts.meal);

答案 2 :(得分:0)

您的程序存在许多架构和风格问题(使用静态,大小写等) - 要纠正它们,需要非常冗长的响应。

您的代码无效,因为您正在创建收银员类的新实例,然后您正在更新其listView1对象。我认为你要做的是更新Form2的listView对象。所以你应该做的是抓取对Form2的引用并在你的OK_Click事件处理程序中填充它的ListView对象......

这里只是一个提示:公共财产应该有一个首字母大写字母。您的pricestmp存储类需要一些工作。