private void CargarCboBodegas()
        {
            try
            {
                BodegaLogica  logica = new BodegaLogica();
                List <Bodega> lista  = new List <Bodega>();
                lista = logica.obtenerBodegas();
                cboBodegas.ItemsSource = lista;

                cboBodegas.DisplayMemberPath = "Nombre";
                cboBodegas.SelectedValuePath = "Id";
                cboBodegas.SelectedValue     = 1;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void btnAgregar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Usuario             usuario      = new Usuario();
                LineaDetalleCompras lineaDetalle = new LineaDetalleCompras();
                Inventario          inventario   = new Inventario();
                BodegaLogica        bLogica      = new BodegaLogica();

                usuario = (Usuario)App.Current.Properties["usuarioSesion"];

                if (ValidacionesAgregar() == true)
                {
                    txtTextBlockDialogo.Text = error;
                    dialogoMENS.IsOpen       = true;
                    return;
                }
                else
                {
                    if (dataGridLineaDetalle.ItemsSource != null)
                    {
                        foreach (var item in dataGridLineaDetalle.ItemsSource as List <LineaDetalleCompras> )
                        {
                            if (producto.IdProducto == item.Producto.IdProducto)
                            {
                                txtTextBlockDialogo.Text = "No puedes ingresar el mismo producto más de una vez";
                                dialogoMENS.IsOpen       = true;
                                return;
                            }
                        }
                    }
                    lineaDetalle.Id         = Guid.NewGuid().ToString();
                    lineaDetalle.Cantidad   = Convert.ToInt32(txtCantidad.Text);
                    producto.IdLineaDetalle = lineaDetalle.Id;
                    producto.IdBodega       = (int)cboBodegas.SelectedValue;
                    lineaDetalle.Producto   = producto;
                    lineaDetalle.SubTotal   = lineaDetalle.Cantidad * Convert.ToDouble(txtPrecioCosto.Text);

                    listaDetalle.Add(lineaDetalle);
                    dataGridLineaDetalle.ItemsSource = listaDetalle;
                    dataGridLineaDetalle.Items.Refresh();
                    //inventario
                    inventario.Cantidad = Convert.ToInt32(txtCantidad.Text);
                    inventario.Bodega   = bLogica.obtenerBodega((int)cboBodegas.SelectedValue);
                    inventario.Empresa  = usuario.Empresa;
                    inventario.Producto = producto;
                    listaInventario.Add(inventario);

                    //para el label del total
                    double total = 0;
                    for (int i = 0; i < listaDetalle.Count; i++)
                    {
                        total += listaDetalle[i].SubTotal;
                    }
                    //  txtSubTotal.Text = total.ToString();
                    txtSubTotal.Text = string.Format("{0:N2}", Convert.ToDecimal(total));
                }
                txtidProducto.Text  = string.Empty;
                txtProducto.Text    = string.Empty;
                txtCantidad.Text    = string.Empty;
                txtPrecioCosto.Text = string.Empty;
                producto            = new Producto();
            }
            catch (Exception)
            {
                txtTextBlockDialogo.Text = "Ocurrio un error al registrar la linea de detalle";
                dialogoMENS.IsOpen       = true;
                return;
            }
        }