title: Xamarin ImageSource in ListView not updating
body: <p>I have a ListView that contains images, the images are fetched from a server. The first API call I make gets the data in <code>var people</code>. I load the listview with a placeholder image, then run the 2nd API call to get the images for each item in the listview. I receive a byte[] as the image, and I convert it to an ImageSource. I have a search button at the top of the page that I set binding to <code>TempImage</code> which uses the byte[] as its source, and it changes to the images that are loaded. So the conversion of byte[] to ImageSource is fine. The initial setting of <code>p.PictureImageSource = "name_circle.png"</code> also works correctly. However, setting <code>p.PictureImageSource</code> to the converted byte[] does NOT work. It never changes from the initial <code>"name_circle.png"</code>. Any ideas?</p>
  
  <pre><code>                        var people = peopleModel.Response;
  
                          if(people.Count == 0)
                          {
                              ShowNoResults = true;
                          }
                          else
                          {
                              ShowNoResults = false;
                              Results = peopleModel.Response;
                              foreach (PersonViewModel p in Results)
                              {
                                  p.Initials = p.FirstName[0].ToString() + p.LastName[0];
                                  p.PictureImageSource = "name_circle.png";
                              }
  
                          }
  
                          //must do 2 seperate loops so the initials load before going on with 2nd search
                          foreach (PersonViewModel p in Results)
                          {
                              IsBusy = false;
                              var peopleImage = await peopleService.GetPersonImage("p.Email");
  
                              if ((peopleImage.Error == null) &amp;&amp; (peopleImage.Response != null))
                              {
                                  p.Picture = peopleImage.Response;
  
                                  byte[] imageAsBytes = (byte[])peopleImage.Response;
                                  p.PictureImageSource = ImageSource.FromStream(() =&gt; new MemoryStream(imageAsBytes));
                                  TempImage = ImageSource.FromStream(() =&gt; new MemoryStream(imageAsBytes));
                              }
  
                          }
  
                          OnPropertyChanged();
  </code></pre>
  
  <p>-</p>
  
  <pre><code>public class PersonViewModel : INotifyPropertyChanged
      {
          public WorkstationViewModel WorkstationDetail { get; set; }
  
          public List&lt;PointViewModel&gt; Points { get; set; }
  
          public string FirstName { get; set; }
          public string LastName { get; set; }
          public string FullName { get; set; }
          public string Initials { get; set; }
          public string Email { get; set; }
          public string ID { get; set; }
          public string Department { get; set; }
          public string BuildingName { get; set; }
          public string SiteID { get; set; }
          public string BuildingID { get; set; }
          public string FloorNumber { get; set; }
          public string FloorID { get; set; }
          public string Workstation { get; set; }
          public string Title { get; set; }
          public string Phone { get; set; }
          public byte[] Picture { get; set; }
          public ImageSource PictureImageSource { get; set; }
  
          public event PropertyChangedEventHandler PropertyChanged;
      }
  </code></pre>