/// <summary>
        /// Al cambiar el corral seleccionado se cargan los costos activos del lote al que pertenece el corral seleccionado
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CbCorrales_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //carga cabezas,lote

            if (cbCorrales.SelectedIndex <= 0)
            {
                dgCostos.ItemsSource = null;
                InicializaContexto();
                txtLote.Clear();
                txtImporte.Clear();
                txtTotalCabezas.Clear();
                txtPesoPromedio.Clear();
                return;
            }

            foreach (CorralesPorOrganizacionInfo corral in corrales)
            {
                //al encontrar el corral:
                if (corral.CorralID == (int)cbCorrales.SelectedValue)
                {
                    if (corral.Activo == EstatusEnum.Inactivo)
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.SalidaGanadoTransito_MsgCorralLoteNoActivo,
                                          MessageBoxButton.OK, MessageImage.Warning);

                        Contexto.Costos      = new List <CostoCorralInfo>();
                        dgCostos.ItemsSource = null;
                        Contexto.LoteID      = 0;
                        txtTotalCabezas.Clear();
                        txtLote.Clear();
                        txtPesoPromedio.Clear();
                        BloquearPantalla();
                    }
                    else
                    {
                        if (cbCorrales.SelectedIndex == 0)//si no se selecciono un corral
                        {
                            txtLote.Clear();
                            txtTotalCabezas.Clear();
                            txtPesoPromedio.Clear();
                            Contexto.LoteID      = 0;
                            dgCostos.ItemsSource = null;
                        }
                        else//si se selecciono un corral:
                        {
                            txtLote.Text         = corral.LoteID.ToString(CultureInfo.InvariantCulture);
                            Contexto.LoteID      = corral.LoteID;
                            txtTotalCabezas.Text = corral.Cabezas.ToString(CultureInfo.InvariantCulture);
                            txtPesoPromedio.Text = corral.PesoPromedio.ToString(CultureInfo.InvariantCulture);
                            DesbloquearPantalla();
                            Contexto.EntradaGanadoTransitoID = corral.EntradaGanadoTransitoID;

                            var costosTemp = CorralBL.ObtenerCostosCorralActivos(corral.EntradaGanadoTransitoID);
                            if (costosTemp == null)
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                  Properties.Resources.SalidaGanadoTransito_MsgCostosCorralNoEncontrados, MessageBoxButton.OK, MessageImage.Warning);
                                Contexto.Costos      = new List <CostoCorralInfo>();
                                dgCostos.ItemsSource = null;
                                BloquearPantalla();
                            }
                            else if (costosTemp.Count == 0)
                            {
                                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                                  Properties.Resources.SalidaGanadoTransito_MsgCostosCorralNoEncontrados, MessageBoxButton.OK, MessageImage.Warning);
                                Contexto.Costos      = new List <CostoCorralInfo>();
                                dgCostos.ItemsSource = null;
                                BloquearPantalla();
                            }
                            else
                            {
                                Contexto.Costos = null;
                                Contexto.Costos = costosTemp;
                            }
                        }

                        if (dgCostos.Items.Count > 0)//si se hallaron costos se desbloquea la pantalla
                        {
                            DesbloquearPantalla();
                        }
                    }
                    break;
                }
            }
            if (Contexto.Costos != null && Contexto.Costos.Count > 0)
            {
                dgCostos.ItemsSource = null;
                dgCostos.ItemsSource = Contexto.Costos;
            }
        }