public void SetLocations(IEnumerable <Location> locations)
 {
     this.locations = locations;
     paises         = locations.Select(x => x.Pais).Distinct().ToList();
     paises.Sort();
     paises.Insert(0, other);
     PaisListTextField.SetListableObjects(paises);
     if (selected == null)
     {
         PaisListTextField.ForceInvokeEvent();
     }
     else
     {
         int indexPais = paises.IndexOf(selected.Pais);
         PaisListTextField.SetSelectionIndex(indexPais);
         ciudades = locations.Where(x => x.Pais.Equals(selected.Pais)).Select(x => x.Ciudad).Distinct().ToList();
         ciudades.Sort();
         ciudades.Insert(0, other);
         CiudadListTextField.SetListableObjects(ciudades);
         var index = ciudades.IndexOf(selected.Ciudad);
         CiudadListTextField.SetSelectionIndex(index);
         var filtered = locations.Where(x => x.Pais.Equals(selected.Pais) && x.Ciudad.Equals(selected.Ciudad)).OrderBy(x => x.Name).ToList();
         filtered.Insert(0, new Location()
         {
             Name = other, Pais = paises[indexPais], Ciudad = ciudades[index], IdLocation = -1
         });
         var s = filtered.Where(x => x.IdLocation == selected.IdLocation).First();
         index = filtered.IndexOf(s);
         CenterListTextField.SetListableObjects(filtered);
         CenterListTextField.SetSelectionIndex(index);
     }
 }