リスト項目をカスタム レイアウトで表示するカスタム 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 は常に位置のオフセットと等しいため、問題はデリゲートの閉鎖によるものだと思います。