Pessoal eu tenho a seguinte situação, tenho um DataGridView onde utilizo o evento SelectedChanged, eu seleciono o registro que eu preciso e vou populando um ListView, porém quando eu selecionar o mesmo registro mais de uma vez eu preciso somente fazer update na coluna "quantidade". É possível fazer isto ?? Pois da forma que eu estou fazendo o programa está até alterando a quantidade, mais está ainda lançando mais uma vez no meu listview.
Segue o código:
foreach (DataRow dr in dsPreVendaItem.dtPreVendaItem.Rows) { if (dr["codigo_produto"].ToString() == vProCod.Trim()) { // Verifica se já existe o mesmo código do produto DataRow[] ItemPrevenda = dsPreVendaItem.dtPreVendaItem.Select("codigo_produto = " + vProCod.ToString().Trim()); ItemPrevenda[0]["item"] = dsPreVendaItem.dtPreVendaItem.Count; ItemPrevenda[0]["codigo_produto"] = vProCod.ToString().Trim(); ItemPrevenda[0]["descricao_cupom"] = dts.Tables[0].Rows[0]["DESCRICAO"].ToString().Trim(); ItemPrevenda[0]["quantidade"] = ++vQtde; ItemPrevenda[0]["valor"] = dts.Tables[0].Rows[0]["PRECO_VENDA"].ToString().Trim(); ItemPrevenda[0]["desconto"] = 0.00m; ItemPrevenda[0]["total"] = dts.Tables[0].Rows[0]["PRECO_VENDA"].ToString().Trim(); existe = true; } }
//Joga as informações no Listview DataTable dtable = dsPreVendaItem.Tables["dtPreVendaItem"]; listView1.Items.Clear();
listView1.BeginUpdate(); for (int i = 0; i < dtable.Rows.Count; i++) { DataRow drow = dtable.Rows[i]; if (drow.RowState != DataRowState.Deleted && !existe) { // Define a lista de itens ListViewItem lvi = new ListViewItem(drow["item"].ToString()); lvi.SubItems.Add(drow["codigo_produto"].ToString()); lvi.SubItems.Add(drow["descricao_cupom"].ToString()); lvi.SubItems.Add(drow["quantidade"].ToString()); lvi.SubItems.Add(drow["valor"].ToString()); lvi.SubItems.Add(drow["desconto"].ToString()); lvi.SubItems.Add(drow["total"].ToString());
//Add a lista de itens ao listview listView1.Items.Add(lvi); listView1.Refresh();