0
我有一些代碼可以讓用戶添加一天(每天是一個ListViewItem),並通過刪除按鈕將日發送到自定義適配器。在適配器中,當點擊刪除按鈕時我會調用一個事件。我刪除的第一項刪除沒有問題,但對於下一個我得到一個NullReferenceException。林懷疑它必須做一個不正確的索引或東西。爲什麼我的ListViewItem不能刪除?
這段代碼來自片段。它接收從適配器發送的事件。我刪除的第一個項目就像它應該刪除的一樣,但它是唯一的一個。
Adapter1.OnDayDeleted += (o,e) =>
{
Day day = e.Day;
DM.ListOfDays.Remove(day);
Adapter1.NotifyDataSetChanged();
Adapter1 = new Adapters.DayObject(Activity, DM.ListOfDays);
ListViewDays.Adapter = Adapter1;
Helpers.Common.SetListViewHeightBasedOnChildren(ListViewDays);
};
這段代碼來自適配器。它將事件發送回片段。
Button buttonRemoveDay = row.FindViewById<Button>(Resource.Id.buttonRemoveDay);
buttonRemoveDay.Click += delegate
{
var day = myItems[position];
//Console.WriteLine(day.Name);
OnDayDeleted.Invoke(this, new OnDayDeletedEventArgs(day));
};
的[刪除在C#中的ListView從項目]可能的複製(https://stackoverflow.com/questions/15572169/delete-items-from-listview-in-c-sharp) –
您是否在使用Xamarin for IDE? – JavadKhan
在哪一行拋出NullReferenceException?在刪除第一個元素之後,myItems集合可能被更改,並且位置索引可能不再有效,或者顯示給最初預期以外的元素。 –