2016-06-01 33 views
2

Ich suche Lösung für diesen Fall, ich habe eine Listview und ich muss eine einfache Kasse zeigen.Sum ListView spezifische Spalte

Appearence

Und meine Zweifel ist, warum kann ich die Summe aller Einzelteile in meinem Listview in meinem unteren textBoxTotal zeigen

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); 

Wenn ich eine Schleife zu schaffen versucht colum zu fangen Werte, die ich brauche, scheitere ich.

etwas wie folgt aus:

for (int i = 0; i < listView.Items.Count; i++) 
//{ 
// valorAcumulado += decimal.Parse(listView.items[i].SubItems[4].Text); 
//} 

Ich brauche nur die 4 Spaltensumme und zeigen Sie es ... auch wenn neue Element hinzugefügt wird.

+0

Welchen Fehler bekommen Sie? Summe = 0 oder Ausnahme? – Sami

+0

Bitte sehen Sie dies [Link] (http://stackoverflow.com/questions/17004522/c-sharp-how-to-show-the-total-of-values-in-a-column-in-a-listview) . –

Antwort

0

Ich denke, mit einem GridView für Ihren Fall besser ist als ein ListView.

Die Schleifen Sie nur einen Tippfehler haben geschrieben, es ist Items und nicht items für 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 
0
double valorSum = 0; 

foreach (ListViewItem lstItem in listView.Items) // listView has ListViewItem objects 
{ 
    valorSum += double.Parse(lstItem.SubItems[4].Text); // Columns 4 
} 
0

Ihre Objekte sehen nicht wohlgeformt ist. Versuchen Sie, es neu zu organisieren, damit es leichter zu folgen und zu pflegen ist.

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; } } 
    } 
}