Binding a property of code behind xaml page to list view
<p>I try to use a public static property named "People" in the code behind of a xaml page and it is filled in the constructor of the code behind page.  Then in xaml page, I let that public property bound to ItemsSource of Xamarin.Forms ListView widget. But on running it, I do not see the listview items are filled. There are nothing to be shown for that listview.  What am I doing wrong here? Please help.</p>

<p>I guess the constructor of the code behind page class is bound AFTER the data rendering for items of the listview. But I am not sure</p>

<p>Codes:</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Mvvm2.Mvvm2Page"
             x:Name="page"&gt;
  &lt;ContentPage.Padding&gt;
    &lt;OnPlatform x:TypeArguments="Thickness" iOS="0,20,0,0" /&gt;
  &lt;/ContentPage.Padding&gt;


  &lt;Grid&gt;
    &lt;Grid.ColumnDefinitions&gt;
      &lt;ColumnDefinition Width="*"&gt;&lt;/ColumnDefinition&gt;
      &lt;ColumnDefinition Width="0"&gt;&lt;/ColumnDefinition&gt;
    &lt;/Grid.ColumnDefinitions&gt;
    &lt;Grid.RowDefinitions&gt;
      &lt;RowDefinition Height="Auto"&gt;&lt;/RowDefinition&gt;
    &lt;/Grid.RowDefinitions&gt;



    &lt;ListView x:Name="listViewPeople" HasUnevenRows="True" Grid.Column="0" Grid.Row="0" Header="People List" 
              ItemsSource="{Binding Source={x:Reference page}, Path=People}"&gt;

      &lt;ListView.ItemTemplate&gt;
        &lt;DataTemplate&gt;
          &lt;ViewCell&gt;
            &lt;ContentView Padding="5"&gt;
              &lt;Frame OutlineColor="Accent" Padding="10"&gt;
                &lt;StackLayout Orientation="Horizontal"&gt;
                  &lt;StackLayout&gt;
                    &lt;Label Text="{Binding Id}"&gt;&lt;/Label&gt;
                    &lt;Label Text="{Binding FirstName}"&gt;&lt;/Label&gt;
                    &lt;Label Text="{Binding LastName}"&gt;&lt;/Label&gt;
                    &lt;Label Text="{Binding Age}"&gt;&lt;/Label&gt;
                  &lt;/StackLayout&gt;
                &lt;/StackLayout&gt;
              &lt;/Frame&gt;
            &lt;/ContentView&gt;
          &lt;/ViewCell&gt;
        &lt;/DataTemplate&gt;
      &lt;/ListView.ItemTemplate&gt;
    &lt;/ListView&gt;
  &lt;/Grid&gt;
&lt;/ContentPage&gt;


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;

namespace Mvvm2
{
    public partial class Mvvm2Page : ContentPage
    {
        public static List&lt;Person&gt; People; // public static property

        public Mvvm2Page()
        {
            InitializeComponent();

            // fill property "People"
            People = new List&lt;Person&gt;();
            People = getPeople();
        }


        private List&lt;Person&gt; getPeople()
        {
            var list = new List&lt;Person&gt;();

            var p1 = new Person { Id = 1, Age = 19, FirstName = "Anna", LastName = "Larson" };
            var p2 = new Person { Id = 2, Age = 23, FirstName = "Beri", LastName = "Slovik" };
            var p3 = new Person { Id = 3, Age = 65, FirstName = "Ron", LastName = "Prelosi" };
            var p4 = new Person { Id = 4, Age = 32, FirstName = "William", LastName = "Maxel" };
            var p5 = new Person { Id = 5, Age = 71, FirstName = "Fred", LastName = "Lipez" };
            var p6 = new Person { Id = 6, Age = 44, FirstName = "Dave", LastName = "Vanoviz" };


                    list.Add(p1);
                    list.Add(p2);
                    list.Add(p3);
                    list.Add(p4);
                    list.Add(p5);
                    list.Add(p6);

            return list;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mvvm2
{
    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
    }


}
</code></pre>