2016-06-01 21 views
2

私はこのケースの解決策を探しています。私はリストビューを取得しています。合計リストビュー固有の列

Appearence

と私はとcolumをキャッチするループを作成しようとしたとき、私は私の下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); 

に私のリストビュー内のすべての項目の合計を表示することができますなぜ私の疑いがあります私が必要とする価値、私は失敗する。そのような

何か:

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

私はちょうど新しいアイテムが追加されても... 4列の合計を必要とし、それを示しています。

+0

どのようなエラーが表示されますか?合計= 0または例外? – Sami

+0

親切にこれを見てください[リンク](http://stackoverflow.com/questions/17004522/c-sharp-how-to-show-the-total-of-values-in-a-column-in-a-listview) 。 –

答えて

0

私はGridViewを使用すると、ListViewよりもあなたのケースのために優れていると思います。あなただけのタイプミスを持って書いた

ループは、それがListViewためItemsなくitemsです:

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

あなたのオブジェクトが整形見ていません。それを追跡して維持するのが簡単になるように、組織を再構成してみてください。

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; } } 
    } 
} 
関連する問題