Boa tarde, estou tentando preencher uma ObservableCollection a partir de um SelectedItem de um Picker com HTTPClient, porem me retorna um erro relacionado a o método não ser assíncrono. Ha alguma forma de tornar o método get; set; de uma propriedade assíncrono?
Classe ViewModel:
public class CadastroViewModel : BaseViewModel
{
public ObservableCollection<Cidade> cidades { get; set; }
public ObservableCollection<Bairro> bairros { get; set; }
private const string URL_CIDADES = "http://172.20.1.3:8383/rest/cidade/listar";
private string URL_BAIRROS = "http://localhost:8080/rest/bairro/listar/";
private bool aguardando;
public bool Aguardando
{
get { return aguardando; }
set
{
aguardando = value;
OnPropertyChanged();
}
}
private Cidade cidadeSelecionada;
public Cidade CidadeSelecionada
{
get
{
return cidadeSelecionada;
}
set
{
cidadeSelecionada = value;
if (value!= null)
{
await getBairros(); (nesta linha recebo o erro)
}
}
}
private Bairro bairroSelecionado;
public Bairro BairroSelecionado
{
get
{
return bairroSelecionado;
}
set
{
bairroSelecionado = value;
}
}
public CadastroViewModel()
{
this.bairros = new ObservableCollection<Bairro>();
this.cidades = new ObservableCollection<Cidade>();
}
//Metodo responsavel por realizar a busca das cidades
public async Task GetCidades()
{
Aguardando = true;
HttpClient cliente = new HttpClient();
var resultado = await cliente.GetStringAsync(URL_CIDADES);
var cidadesJson = JsonConvert.DeserializeObject<Cidade[]>(resultado);
foreach (var cidade in cidadesJson)
{
this.cidades.Add(cidade);
}
Aguardando = false;
}
//Metodo responsavel por realizar a busca dos bairros por meio do id da cidade selecionada
public async Task getBairros()
{
Aguardando = true;
HttpClient cliente = new HttpClient();
URL_BAIRROS = URL_BAIRROS + cidadeSelecionada.id;
var resultado = await cliente.GetStringAsync(URL_BAIRROS);
var bairrosJson = JsonConvert.DeserializeObject<Bairro[]>(resultado);
foreach (var bairro in bairrosJson)
{
this.bairros.Add(bairro);
}
Aguardando = false;
}
}