Click here to Skip to main content
15,889,403 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I am developing a cross platform app in Xamrin with Visual Studio 2017. Have made a simple form for testing with just one listview. I am trying to GetData from my WebAPI and show it in a listview. I checked my web API end points using Postman and its working perfectly alright. But my listview does not show any data . Trying desperately to find out what is it that is creating the problem . My code from XAML , .CS file and View Model is as shown below.



What is it that I am doing wrong here????? Its been quite a long time since I have been trying to figure out why my listview is not showing my data. Any kind of help will be appreciated.

What I have tried:

VIEW MODEL CODE:

 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 CODE:


<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;
Posted
Updated 8-Oct-17 22:44pm
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900