public class PhotoViewHolder : RecyclerView.ViewHolder { public ImageView Image { get; private set; } public PhotoViewHolder (Android.Views.View itemView) : base (itemView) { // Locate and cache view references: Image = new ImageView(itemView.Context); } } public class DataSource : RecyclerView.Adapter { public MyImageGalleryRenderer mPhotoAlbum; public DataSource (MyImageGalleryRenderer photoAlbum) { mPhotoAlbum = photoAlbum; } public override RecyclerView.ViewHolder OnCreateViewHolder (ViewGroup parent, int viewType) { // Create a ViewHolder to hold view references inside the CardView: PhotoViewHolder vh = new PhotoViewHolder (parent); return vh; } public override void OnBindViewHolder (RecyclerView.ViewHolder holder, int position) { PhotoViewHolder vh = holder as PhotoViewHolder; // Load the photo image resource from the photo album: vh.Image.SetImageURI(Uri.Parse("file://" + mPhotoAlbum.Element.ItemsSource.Cast().ToArray()[position])); vh.Image.SetScaleType(ImageView.ScaleType.FitXy); } public override int ItemCount { get { return mPhotoAlbum.Element.ItemsSource.Cast().Count(); } } }