/// <summary> /// Botón que filtra del archivo según los radioButton: Apartamento/Casa, Alquiler/Compra /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRadiobtnAceptar_Click(object sender, EventArgs e) { List <Inmueble> ListaInmCiudad = new List <Inmueble>(); dataGridView1.DataSource = null; lista.Clear(); // La primera Flag indica: "A" Apartamento, "C" Casa // La segunda Flag indica: "A" Alquiler, "V" Venta if (radioBtnApto.Checked && radioBtnAlquilar.Checked) { lista = m.Filtro_AlquilerVenta_AptoCasa("A", "A"); comboBoxCiudades.DataSource = null; } else if (radioBtnCasa.Checked && radioBtnAlquilar.Checked) { lista = m.Filtro_AlquilerVenta_AptoCasa("C", "A"); comboBoxCiudades.DataSource = null; } else if (radioBtnApto.Checked && radioBtnComprar.Checked) { lista = m.Filtro_AlquilerVenta_AptoCasa("A", "V"); comboBoxCiudades.DataSource = null; } else if (radioBtnCasa.Checked && radioBtnComprar.Checked) { lista = m.Filtro_AlquilerVenta_AptoCasa("C", "V"); comboBoxCiudades.DataSource = null; } if (!radioBtnCasa.Checked && !radioBtnApto.Checked || !radioBtnAlquilar.Checked && !radioBtnComprar.Checked) { MessageBox.Show("Falta data"); comboBoxCiudades.DataSource = null; } if (txtPrecioMin.Text != "" || txtPrecioMax.Text != "") { Int32 min = 0; Int32 max = 0; // Como entra a este if, sólo si el usuario ingresó minimo Ó máximo. // Se valida que, si no puso mínimo, el mínimo sea 0, // Si no hay máximo, el máximo es un número muy alto para que entren todos los inmuebles. // De esta forma se valida por ej, que si sólo se buscan casas hasta 300.000 dólares (mínimo no completado), entonces, el mínimo es cero. if (txtPrecioMin.Text.Length == 0 && txtPrecioMax.Text.Length > 0) { min = 0; max = Convert.ToInt32(txtPrecioMax.Text); } if (txtPrecioMin.Text.Length > 0 && txtPrecioMax.Text.Length == 0) { min += Convert.ToInt32(txtPrecioMin.Text); max = 150000000; } if (txtPrecioMin.Text.Length > 0 && txtPrecioMax.Text.Length > 0) { min += Convert.ToInt32(txtPrecioMin.Text); max = Convert.ToInt32(txtPrecioMax.Text); } // La función, BuscarPorPrecio, requiere que se le pase una lista para que la filtre según // Las condiciones de min y máx. A su vez de dichas condiciones, pueden utilizarse ambas, // ninguna o sólo una. lista = m.BuscarPorPrecio(min, max, lista); } // Se carga el comboBox, mostrando sólamente las ciudades a las que pertenecen // los apartamentos de la lista filtrada. comboBoxCiudades.DataSource = m.Ciudades(); dataGridView1.DataSource = lista; }