C# 无法在Visual Studio 2017的列表视图中显示Web API数据
我正在使用Visual Studio 2017在Xamrin中开发一个跨平台应用程序。我们制作了一个简单的表单,用于仅使用一个listview进行测试。 我正在尝试从我的WebAPI获取数据,并将其显示在listview中。 我用Postman检查了我的WebAPI端点,它工作得非常好。但是我的listview不显示任何数据。拼命想找出是什么造成了这个问题。 我在XAML、.CS文件和视图模型中的代码如下所示 查看型号代码:C# 无法在Visual Studio 2017的列表视图中显示Web API数据,c#,xaml,listview,xamarin,visual-studio-2017,C#,Xaml,Listview,Xamarin,Visual Studio 2017,我正在使用Visual Studio 2017在Xamrin中开发一个跨平台应用程序。我们制作了一个简单的表单,用于仅使用一个listview进行测试。 我正在尝试从我的WebAPI获取数据,并将其显示在listview中。 我用Postman检查了我的WebAPI端点,它工作得非常好。但是我的listview不显示任何数据。拼命想找出是什么造成了这个问题。 我在XAML、.CS文件和视图模型中的代码如下所示 查看型号代码: public class MainViewModel : INotif
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();
}
}
<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>
我在这里做错了什么?????自从我试图弄明白为什么我的listview没有显示我的数据以来,已经有相当长的一段时间了。
任何帮助都将不胜感激。我看不出您的代码中有任何问题,您能发布此变量项的声明吗?主要原因是您为ListView提供了单独的视图模型????MyListView.BindingContext=myViewModel;您可以包含完整的VM类吗?
ItemsListMain
在哪里声明?@degant-我已经用您要求的信息编辑了上面的代码。:)请参考并给我一些帮助。@ShiwankaChathuranga-请查看我的声明代码以及我在page.cs中编辑的视图模型listview绑定代码。请参阅和帮助。:)我在你的代码中看不到任何问题,你能发布这个变量ItemsListMain的声明吗?为什么你有单独的ListView视图模型????MyListView.BindingContext=myViewModel;您可以包含完整的VM类吗?ItemsListMain
在哪里声明?@degant-我已经用您要求的信息编辑了上面的代码。:)请参考并给我一些帮助。@ShiwankaChathuranga-请查看我的声明代码以及我在page.cs中编辑的视图模型listview绑定代码。请参阅和帮助。:)
MainViewModel myViewModel = new MainViewModel();
MyListView.BindingContext = myViewModel;