public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var view = convertView;
            DeliveryAdapterViewHolder holder = null;

            if (view != null)
            {
                holder = view.Tag as DeliveryAdapterViewHolder;
            }

            if (holder == null)
            {
                holder = new DeliveryAdapterViewHolder();
                var inflater = context.GetSystemService(Context.LayoutInflaterService).JavaCast <LayoutInflater>();
                //replace with your item and your holder items
                //comment back in
                //view = inflater.Inflate(Resource.Layout.item, parent, false);

                // Adapt the REMmed-out boilerplate to make use of our bespoke DeliveryCell in ListView's inflation
                view = inflater.Inflate(Resource.Layout.DeliveryCell, parent, false);

                // set the holder's properties (see its modified definition below) to our text fields' values
                holder.Name   = view.FindViewById <TextView>(Resource.Id.deliveryNameTextView);
                holder.Status = view.FindViewById <TextView>(Resource.Id.deliveryStatusTextView);

                //holder.Title = view.FindViewById<TextView>(Resource.Id.text);
                view.Tag = holder;
            }


            //fill in your items
            //holder.Title.Text = "new text here";
            var delivery = deliveries[position];        // 'position' from signature of Adapter - ie for every cell, ....

            holder.Name.Text = delivery.Name;           // set the name property of the adapter for the bespoke cell's text field
            switch (delivery.Status)
            {
            case 0:
                holder.Status.Text = "Awaiting delivery person";
                break;

            case 1:
                holder.Status.Text = "Out for delivery";
                break;

            case 2:
                holder.Status.Text = "Already delivered";
                break;

            default:
                holder.Status.Text = "Delivery status unknown";
                break;
            }

            return(view);
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var view = convertView;
            DeliveryAdapterViewHolder holder = null;

            if (view != null)
            {
                holder = view.Tag as DeliveryAdapterViewHolder;
            }

            if (holder == null)
            {
                holder = new DeliveryAdapterViewHolder();
                var inflater = context.GetSystemService(Context.LayoutInflaterService).JavaCast <LayoutInflater>();
                //replace with your item and your holder items
                //comment back in
                view = inflater.Inflate(Resource.Layout.DeliveryCell, parent, false);

                holder.Name   = view.FindViewById <TextView>(Resource.Id.deliveryNameTextView);
                holder.Status = view.FindViewById <TextView>(Resource.Id.deliveryStatusTextView);

                view.Tag = holder;
            }


            //fill in your items
            var delivery = deliveries[position];

            holder.Name.Text = delivery.Name;
            switch (delivery.Status)
            {
            case 0:
                holder.Status.Text = "waiting for delivery person";
                break;

            case 1:
                holder.Status.Text = "in delivery";
                break;

            case 2:
                holder.Status.Text = "delivered";
                break;
            }

            return(view);
        }