我正在使用Visual Studio 2017在Xamrin中开发一个跨平台应用程序。使用一个列表视图制作了一个简单的测试表单。 我正在尝试从我的WebAPI获取GetData并在列表视图中显示它。 我使用Postman检查了我的Web API端点,它的工作完全没问题。但我的listview没有显示任何数据。拼命想要找出造成问题的原因。 我的XAML,.CS文件和View Model的代码如下所示。
查看型号代码:
public class MainViewModel : INotifyPropertyChanged
{
public class ItemDetailsClass
{
public string ItemCode { get; set; }
public string ItemDesc { get; set; }
}
public ObservableCollection<ItemDetailsClass> ItemsListMain
{
get { return _itemsListMain; }
set
{
_itemsListMain = value;
OnPropertyChanged();
}
}
public async Task <ObservableCollection<ItemDetailsClass>> GetAsync()
{
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(WebServiceUrl);
var taskModels = JsonConvert.DeserializeObject<ObservableCollection<ItemDetailsClass>>
(json);
return taskModels;
}
private async Task InitaializeDataAsync()
{
ItemsListMain = await GetAsync();
}
public MainViewModel()
{
InitaializeDataAsync();
}
}
XAML代码:
<ContentPage.BindingContext>
<viewModels:MainViewModel/>
</ContentPage.BindingContext>
<ListView
x:Name="MyListView"
ItemsSource="{Binding ItemsListMain}"
CachingStrategy="RecycleElement"
HasUnevenRows="True"
IsVisible="True">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding ItemCode}" TextColor="Black"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Page.Cs CODE
MainViewModel myViewModel = new MainViewModel();
MyListView.BindingContext = myViewModel;
我在这里做错了什么?????自从我试图弄清楚为什么我的listview没有显示我的数据以来,已经有很长一段时间了。 任何形式的帮助将不胜感激。