Listing2: Page Navigation with Windows Phone and Windows 8

Loading the image with ImagePageViewModel.

public class ImagePageViewModel:INotifyPropertyChanged
{
    public Repository Repository { get; private set; }

    private FlickrImage image;
    public FlickrImage Image
    {
        get { return image; }
        set
        {
            if (Image == value) return;
            image = value;
            OnPropertyChanged("Image");
        }
    }
        
    public ImagePageViewModel(Repository repository)
    {
        Repository = repository;
    }

    public async void Load(string title)
    {
        var images = await Repository.Load();
        Image = (from img in images
                    where img.Title == title
                    select img).FirstOrDefault();
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged(string propertyName)
    {
        if(PropertyChanged!=null)
              PropertyChanged(this,
                              new PropertyChangedEventArgs(propertyName));
    }
}

About the Author

Nick Randolph runs Built to Roam, a consulting company that specializes in training, mentoring and assisting other companies build mobile applications. With a heritage in rich client applications for both the desktop and a variety of mobile platforms, Nick currently presents, writes and educates on the Windows Phone platform.