Я пытаюсь выучить MVVVM, выполняя погодное приложение, используя курс Udemy в качестве справочного пособия, Bing Maps Api и API OpenWeather.
Я пытаюсь связать город с текстом AutoSuggestBox моего xaml
Я сделал WeatherVM и привязал его к представлению, в качестве ресурса страницы я также сделал быстрый методя получаю код города и страны, где я нахожусь (используя API Bing Maps). Я вызвал метод из MainPage.cs, только чтобы посмотреть, работает ли он, и работает ли он нормально. Я получаю код города и страны, как и ожидалось.
WeatherVM
public OpenWeather OpenWeather { get; set; }
private Task<string> _city;
public Task<string> city {
get { return _city; }
set {
_city = value;
GetLocationData();
}
}
public WeatherVM() {
OpenWeather = new OpenWeather();
}
private async void GetLocationData() {
var cityData = await MapLocator.GetCityData();
}
}
}
MainPage.xaml
x:Class="MVVM_Example.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MVVM_Example"
xmlns:vm="using:MVVM_Example.ViewModel"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Page.Resources>
<vm:WeatherVM x:Key="vm" />
</Page.Resources>
<Grid DataContext="{StaticResource vm}">
<AutoSuggestBox Margin="40" QueryIcon="Find"
PlaceholderText="Search"
Text="{Binding Source={StaticResource vm}, Path=city, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Grid>
</Page>
Я ожидаю, что "Орландо" появится в моем AutoSuggestBox