2016-03-12 3 views
-3

Единственное обновление - это количество, я также хочу, чтобы промежуточный итог в моем списке был обновлен при обновлении количества. Вы можете мне помочь ? СпасибоЯ хочу обновить количество и промежуточный итог в listview C#

if (listView1.Items.Count > 0)   
{ 
    foreach (ListViewItem i in listView1.Items) 
    { 
     if (Convert.ToString(i.SubItems[0].Text) ==txtProduct.Text) 
     { 
      foreach (ListViewItem items in listView1.Items) 
      {  
       items.SubItems[3].Text = Convert.ToString(Convert.ToInt32(Qty1.Text) + Convert.ToInt32(items.SubItems[3].Text)) 
       items.SubItems[4].Text = Convert.ToString(Convert.ToInt32(txtPriceC.Text) * Convert.ToInt32(items.SubItems[3].Text)); 
      } 
     } 
    } 
} 

screenshot of the table

Это мой ListView.

Количество обновляется в представлении списка, если я добавляю элемент с тем же именем продукта, но промежуточный итог - нет. То, что я хочу достичь, это то, когда мое количество обновляет промежуточный итог, также обновляется.

+0

Есть ли что-то не в порядке с кодами? – ang

+0

Знаете ли вы, что у WinForms и WPF и, вероятно, у многих других технологий есть класс ListViewItem? Вы не сказали нам, какую графическую библиотеку вы используете. И мы не знаем, где должен быть ваш промежуточный итог. Поэтому я не уверен, как мы можем помочь вам без [дополнительной информации] (http://stackoverflow.com/help/mcve). –

+0

i обновил вопрос, я добавил фотографию – ang

ответ

0

Несмотря на то, что я действительно не понимаю, что вы хотите сделать, поскольку информация в вашем вопросе не совсем ясна, я предполагаю, что второй цикл foreach на самом деле не нужен. Может быть, вы можете опубликовать снимок экрана своего WinForm (или это WPF?) И содержимое ListView?

if (listView1.Items.Count > 0) 
{ 
    foreach (ListViewItem i in listView1.Items) 
    { 
     if (i.SubItems[0].Text == txtProduct.Text) 
     { 
      i.SubItems[3].Text = Convert.ToString(Convert.ToInt32(Qty1.Text) + Convert.ToInt32(i.SubItems[3].Text)); 
      i.SubItems[4].Text = Convert.ToString(Convert.ToInt32(i.SubItems[2].Text) * Convert.ToInt32(i.SubItems[3].Text));           
     } 
    } 
} 
+0

Ок, кажется, нам нужна дополнительная информация. Какова должна быть основная цель вашей программы? Вы должны быть точными в своих объяснениях. Я думаю, ответ прост, но без хорошего объяснения я здесь потерялся :) –

+0

мы делаем систему заказов. и у меня есть кнопка добавления в корзину. добавьте в корзину кнопку значения Название продукта, цена, количество и промежуточный итог. subtotal - вычисленная цена * количество. и он добавит в listview. И когда я добавлю новое значение с тем же именем продукта, оно добавит только количество и не добавит новую строку. и я хочу, чтобы это произошло, когда количество обновлено в listview, промежуточный итог также будет обновлен. – ang

+0

Я обновил код в своем ответе. Если я правильно догадался, вы хотите получить промежуточный итог информации, хранящейся в 'i.SubItems [2]' (в вашем столбце PRICE) и умножить это на 'i.SubItems [3]' (столбец QTY) и сохранить результат в 'i.SubItems [4] .Text'. Поэтому второй цикл foreach не нужен. –

Смежные вопросы