Я пытаюсь удалить строки из списка. Когда я нажимаю delete, строка удаляется. Однако ListView не обновляется. Я должен нажать кнопку «Назад» и вернуться, чтобы удалить элемент. Есть ли способ обновить страницу после удаления элемента? Вот мой код:Mono для Android: ListView Удалить элементы NotifyDataSet Changed
public class OrderHistoryAdapter : BaseAdapter
{
private List<Order> _orders;
private Activity _context;
public OrderHistoryAdapter(Activity context, List<Order> orders)
{
_context = context;
_orders = orders;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = _orders.ElementAt(position);
var view = (convertView ??
this._context.LayoutInflater.Inflate(
Resource.Layout.OrderHistoryDetailsRow,
parent,
false)) as RelativeLayout;
TextView orderHistoryText = view.FindViewById<TextView>(Resource.Id.orderHistoryText);
orderHistoryText.Text = ((Order)item).Date.ToShortDateString();
view.FindViewById<TextView>(Resource.Id.btnDeleteOrder).Click += delegate
{
OrderRepository orderRepo = new OrderRepository();
orderRepo.Delete(((Order)item).Id);
//Item has been deleted, yet list fails to update
NotifyDataSetChanged();
};
//Finally return the view
return view;
}
public override int Count
{
get { return _orders.Count(); }
}
public Order GetOrder(int position)
{
return _orders.ElementAt(position);
}
public override Java.Lang.Object GetItem(int position)
{
return null;
}
public override long GetItemId(int position)
{
return position;
}
}
Спасибо! Это сработало. Вот правильный код: if (_orders.Contains (item)) { _orders.Remove (item); NotifyDataSetChanged(); OrderRepository orderRepo = новый OrderRepository(); orderRepo.Delete (((Заказ) item) .Id); } }; –