Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2009, 10:48
wondercloud
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 1
problema listbox y datagrid

hola tengo un problema, tengo un listbox que carga una lista de remitos. esta se carga cuando ingreso el numero de remito en el textbox.
cuando selecciono el remito del listbox se deberia cargar los detalles en el datagrid.
pero me tira este error:

El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index


aca pongo el codigo:

Código:
    public partial class frmDev : Form
    {
        private BindingList<Venta> bVenta;
        public frmDev()
        {
            InitializeComponent();
        }

        private void txtRemito_TextChanged(object sender, EventArgs e)
        {
            
        
            if (txtRemito.Text != "")
            {
                Int32 valorId = Convert.ToInt32(txtRemito.Text);
                IRepositorioVenta rVen = new RepositorioVenta();
                IList<Venta> lVen = rVen.obtenerFacturasPorId(valorId);
                bVenta = new BindingList<Venta>(lVen);
               
                lstRemitos.ValueMember = "Id";
                lstRemitos.DisplayMember = "NumeroRemito";
                lstRemitos.DataSource = lVen;
                
                
            }
        }

        private void txtRemito_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= 47 && e.KeyChar <= 58) || (e.KeyChar == 8))
            {
                e.Handled = false;
                
            }
            else
            {
                e.Handled = true;
            }
       

                
        }

        private void txtRemito_MouseClick(object sender, MouseEventArgs e)
        {
//
        
        }
        private void armaGrillaRemito(string[]titulos, string[]datos)
        {
            dgvRemito.Columns.Clear();
            for (int i = 0; i < datos.Length; i++)
            {
                DataGridViewColumn dCol = new DataGridViewColumn();
                dCol.DataPropertyName = datos[i];
                dCol.HeaderText = titulos[i];
                dCol.CellTemplate = new DataGridViewTextBoxCell();
                dgvRemito.Columns.Add(dCol);

            }
        }

        private void frmDev_Load(object sender, EventArgs e)
        {
            dgvRemito.Refresh();
            dgvRemito.AutoGenerateColumns = false;
            string[]titulos = new string [2]{"Producto","Cantidad"};
            string[] datos = new string[2] { "NombreProducto", "Cantidad" };
            armaGrillaRemito(titulos, datos);
        }

        private void lstRemitos_SelectedIndexChanged(object sender, EventArgs e)
        {
            Venta num = ((Venta)lstRemitos.SelectedItem);
                 
                Venta ven;
                ven = bVenta[num.Remito.idRemito]; //aca esta tirando error
                dgvRemito.DataSource = ven.Items;
                dgvRemito.Refresh();
              
            
        }

el count de bVenta llega con 1 y el ven viene con el id del remito seleccionado de la listbox.
que me falta para que me cargue los items en el data grid??

saludos!