autocomplete textbox brak listy

0

Jak mogę zrobić, żeby mi się lista automatycznie odświeżała po pobraniu z api ? Chodzi mi o to, że chcę zrobić sobie podpowiedzi dotyczące nazw, korzystam sobie z google api. pobieram sobie dane. Wykorzystuje kontrolkę z wpf toolkit

      public static async Task<List<string>> GetCityFromJson(string value)
       {
           string cityUrl = $"https://maps.googleapis.com/maps/api/place/autocomplete/json?input={value}&types=(cities)&language=pl_PL&key=brak";
           string cityJson = await new HttpClient().GetStringAsync(cityUrl);
           var cityDeserializeObject = JsonConvert.DeserializeObject<RootObject>(cityJson);
           var disc = cityDeserializeObject.predictions.Select(z => z.description).ToList();
           return disc;
       }

     <controls:AutoCompleteBox
                x:Name="AutoCompleteBox"
                ItemsSource="{Binding CityValues, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                SelectedItem="{Binding Search, UpdateSourceTrigger=PropertyChanged}" 
                Text="{Binding Search, Mode=TwoWay ,UpdateSourceTrigger=PropertyChanged}" 
                IsTextCompletionEnabled="True" 
                FilterMode="Contains"
                Focusable="True"
                Margin="73,5,58.8,5" FontSize="18"
                Height="35"
                VerticalAlignment="Center" HorizontalAlignment="Center" Width="285" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="KeyUp">
                        <i:InvokeCommandAction Command="{Binding KeyUpEventCommand, UpdateSourceTrigger=PropertyChanged}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </controls:AutoCompleteBox>

VIewModel
```csharp
private ObservableCollection<string> _citiesValues;
public ObservableCollection<string> CityValues
{
get => _citiesValues;
set
{
_citiesValues = value;
SetProperty(ref _citiesValues, value);
}
}
public async void KeyEnterCommand(KeyEventArgs args)
{
_citiesValues = new ObservableCollection<string>(await HttpGrabber.GetCityFromJson(Search));
}

Nazwy mi się pobierają, tyle, że nie dodaje mi się to do listy w kontrolce i kontrolka się nie odświeża.
0

W metodzie:


 public async void KeyEnterCommand(KeyEventArgs args)
        {
            _citiesValues = new ObservableCollection<string>(await HttpGrabber.GetCityFromJson(Search));
        }

Zamiast "citiesValues =... " powinno być "CityValues = ..."

1 użytkowników online, w tym zalogowanych: 0, gości: 1