我已经实现了一个自定义 BaseAdapter,它显示具有自定义布局的列表项。
一切正常,但我试图添加一个删除按钮以显示在项目(我有)旁边,但是我在尝试让它工作时遇到了问题。
相关代码在这里:
public List<OrderLineItem> Items
{
get;
set;
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
OrderLineItem item = GetItemAtPosition(position);
var view = (convertView ??
Context.LayoutInflater.Inflate(Resource.Layout.CustomListItem, parent, false)) as LinearLayout;
// ..........
var removeButton = view.FindViewById(Resource.Id.btnRemove) as Button;
removeButton.Click += delegate
{
Items.RemoveAt(position);
this.NotifyDataSetChanged();
};
// ...........
return view;
}
问题是我认为由于委托关闭,因为 Items.Count 始终等于位置的偏移量。