Xamarin.Android Gridview Изменение и сохранение значений ячеек

Приложение сбора заказов в стиле excell листа. Все работает с 2d прокруткой на экране до момента заполнения ячеек. При скроллинге исчезают введенные значения. Вот код адаптера с остатками моих попыток:

public class OrderAdapter : BaseAdapter
    {
        private Activity activity;
        private List<Order> orders;

        public OrderAdapter(Activity activity, List<Order> orders) : base()
        { this.activity = activity; this.orders = orders; }

        public override int Count
        { get { return orders.Count; } }

        public override Java.Lang.Object GetItem(int position)
        { return orders[position]; }

        public override long GetItemId(int position)
        { return 0; }

        public void Refresh(List<Order> orders)
        {
            this.orders = orders;
            NotifyDataSetChanged();
        }

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

            if (view == null)
                view = activity.LayoutInflater.Inflate(Resource.Layout.oList_item, parent, false);

            TextView codeView = (TextView)view.FindViewById<TextView>(Resource.Id.Code);
            TextView nameView = (TextView)view.FindViewById<TextView>(Resource.Id.Name);
            TextView unitView = (TextView)view.FindViewById<TextView>(Resource.Id.Unit);
            TextView priceView = (TextView)view.FindViewById<TextView>(Resource.Id.Price);
            EditText quantityView = (EditText)view.FindViewById<EditText>(Resource.Id.Quantity);

            var item = (Order)this.GetItem(position);

            //quantityView.AfterTextChanged += delegate
            //{
            //    //for (ii = 0; ii < orders.Count; ii++)
            //    //    if (ii == position)
            //    //        item.quantity = decimal.Parse(quantityView.Text);
            //};

            codeView.Text = item.code;
            nameView.Text = item.name;
            unitView.Text = item.unit;
            priceView.Text = item.price.ToString("N2");
            quantityView.Text = item.quantity.ToString("N0");

            //view.SetTag(position, item);

            return view;
        }

        //private void QuantityView_AfterTextChanged(object sender, Android.Text.AfterTextChangedEventArgs e)
        //{
            //Refresh(orders);
        //}
    }

Понимаю, надо передавать новые данные на источник. Буду благодарен, если поможете!


Ответы (0 шт):