我正在寻找这种情况的解决方案,我得到了一个列表视图,我必须展示一个简单的收银员。
我怀疑为什么我可以在我的列表视图中显示所有项目的总和 textBoxTotal
codProduto = int.Parse(txtCodProd.Text);
nomePRod = txtNomeProd.Text;
quantidade = int.Parse(txtQuantidade.Text);
valorUnitario = nvo.procurarPreco(int.Parse(txtCodProd.Text));
valorTotal = quantidade * valorUnitario;
valorAcumulado += valorTotal;
0 1 2 3 4 <<number columns
//ID NOME QUANTIDADE VALOR_UNITARIO VALOR_TOTAL
ListViewItem itens = new ListViewItem(codProduto.ToString());
itens.SubItems.Add(nomePRod.ToString());
itens.SubItems.Add(quantidade.ToString());
itens.SubItems.Add(valorUnitario.ToString());
itens.SubItems.Add(valorTotal.ToString());
listView.Items.Add(itens);
当我尝试使用我需要的值创建循环来捕获colum时,我失败了。
类似的东西:
for (int i = 0; i < listView.Items.Count; i++)
//{
// valorAcumulado += decimal.Parse(listView.items[i].SubItems[4].Text);
//}
我只需要4列总和并显示它......即使添加了新项目。
答案 0 :(得分:0)
double valorSum = 0;
foreach (ListViewItem lstItem in listView.Items) // listView has ListViewItem objects
{
valorSum += double.Parse(lstItem.SubItems[4].Text); // Columns 4
}
答案 1 :(得分:0)
我认为使用GridView
比ListView
更适合您的情况。
你写的循环只有一个拼写错误,Items
而不是items
ListView
:
decimal valorAcumulado = 0;
for (int i = 0; i < listView.Items.Count; i++)
{
valorAcumulado += decimal.Parse(listView.Items[i].SubItems[4].Text);
}
Console.WriteLine(valorAcumulado); // 83
答案 2 :(得分:0)
您的物品看起来不太好。尝试重新组织它,以便更容易遵循和维护。
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
List<CartItem> cartItems = new List<CartItem>();
cartItems.Add(new CartItem
{
ItemNumber = "1234",
Description = "Small widget",
Quantity = 2,
Price = 1.50,
});
cartItems.Add(new CartItem
{
ItemNumber = "6789",
Description = "Large widget",
Quantity = 1,
Price = 10.00,
});
double total = 0;
foreach(CartItem item in cartItems)
{
total += item.ExtendedPrice;
}
MessageBox.Show("Your total is $" + total.ToString());
}
}
public class CartItem
{
public CartItem(){}
public string ItemNumber { get; set; }
public string Description { get; set; }
public int Quantity { get; set; }
public double Price { get; set; }
public double ExtendedPrice { get { return Price * Quantity; } }
}
}