public override View GetView(int position, View convertView, ViewGroup parent) { var view = convertView; ProductListAdapterViewHolder holder = null; if (view != null) { holder = view.Tag as ProductListAdapterViewHolder; } if (holder == null) { CreateAndSetHolder(parent, out view, out holder, position); } //fill in your items //holder.Title.Text = "new text here"; var product = _products[position]; holder.Name.Text = product.Name; holder.Price.Text = product.Price.ToString(); holder.Count.Text = product.Count.ToString(); holder.Purchased.Checked = product.Purchased; return(view); }
private void SetPurchasedCheckboxclickedHandler(int position, ProductListAdapterViewHolder holder) { holder.Purchased.Click += (s, e) => { var lProduct = _products[position]; lProduct.Purchased = ((CheckBox)s).Checked; _productRepository.Update(lProduct); }; }
private void CreateAndSetHolder(ViewGroup parent, out View view, out ProductListAdapterViewHolder holder, int position) { holder = new ProductListAdapterViewHolder(); var inflater = _context.GetSystemService(Context.LayoutInflaterService).JavaCast <LayoutInflater>(); //replace with your item and your holder items //comment back in view = inflater.Inflate(Resource.Layout.product_item_template, parent, false); holder.Name = view.FindViewById <TextView>(Resource.Id.txtName); holder.Price = view.FindViewById <TextView>(Resource.Id.txtPrice); holder.Count = view.FindViewById <TextView>(Resource.Id.txtCount); holder.Edit = view.FindViewById <TextView>(Resource.Id.txtEdit); holder.Delete = view.FindViewById <TextView>(Resource.Id.txtDelete); holder.Purchased = view.FindViewById <CheckBox>(Resource.Id.cbPurchased); SetPurchasedCheckboxclickedHandler(position, holder); holder.Edit.Click += (s, e) => { GoToEditActivity(position); }; holder.Delete.Click += (s, e) => { DeleteProductFromList(position); }; view.Tag = holder; }