我是 C# 和 XAML 的新手,正在开发一个简单的天气应用程序,它可以让您搜索城市和州并返回格式化的 10 天预报列表。
我在使用 ListView显示从Wunderground Weather API检索到的数据时遇到问题。这是我正在使用的 JSON,例如。
我的问题:从 Wunderground API 获得结果后,如何通过 XAML 中显示项目属性(icon_url、title、fcttext)的模板运行所有列表项?
这是我的模型:
公共类 ForecastList { 公开课 Forecastday { 公共字符串 icon_url { 获取;放; } 公共字符串标题 { 获取;放; } 公共字符串 fcttext { 获取;放; } } 公共类 TxtForecast { 公开列表预测日{获取;放; } } 公开课预报 { 公共 TxtForecast txt_forecast { 获取;放; } } 公共类 RootObject { 公共预测预测 { 获取;放; } } }
XAML:
<Stack Layout Padding="30">
<StackLayout Orientation="Horizontal">
<Entry HorizontalOptions="FillAndExpand" Placeholder="City" x:Name="City" />
<Entry Placeholder="2 letter state" x:Name="State" />
</StackLayout>
<Button Text="Search" Clicked="OnClicked" />
<ListView ItemsSource="{Binding ListSource}">
<ListView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding Title}" />
<Label Text="{Binding FctText}" />
<Image Source="{Binding IconUrl}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
和视图模型:
公共类 MainPageViewModel { 公共异步任务 GetWeatherAsync(字符串 url) { HttpClient 客户端 = 新 HttpClient(); client.BaseAddress = new Uri(url); var response = await client.GetAsync(client.BaseAddress); response.EnsureSuccessStatusCode(); var JsonResult = response.Content.ReadAsStringAsync().Result; var 天气 = JsonConvert.DeserializeObject(JsonResult); 设置列表(天气); } 公共列表 ListSource { 获取;放; } 私有字符串_title; 公共字符串标题 { 得到 { 返回_title; } 放 { _title = 价值; } } 私有字符串_fctText; 公共字符串 FctText { 得到 { 返回_fctText; } 放 { _fctText = 值; } } 私有字符串_iconUrl; 公共字符串 IconUrl { 得到 { 返回_iconUrl; } 放 { _iconUrl = 值; } } private void SetList(ForecastList.RootObject 天气) { ListView listView = new ListView(); var forecastList = weather.forecast.txt_forecast.forecastday; 列表 listSource = new List(forecastList); 列表来源 = 列表来源; listView.ItemsSource = ListSource; } }
干杯!