我有一个列表,其中包含一些用户的选定项目。我的CustumCellViewTemplate具有一个“取消选择”控件,该控件从列表中删除了该单元格。 当列表完全充满项目时,“取消选择”控件起作用,但是当我想删除最后一个项目或者如果最后一个项目出现在ListView中时,我得到此异常:
"System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Forms.Platform.Android.ListViewAdapter.IsEnabled (System.Int32 position) [0x0002a] in D:\a\1\s\Xamarin.Forms.Platform.Android\Renderers\ListViewAdapter.cs:413
at Android.Widget.BaseAdapter.n_IsEnabled_I (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 position) [0x00008] in <263adecfa58f4c449f1ff56156d886fd>:0
at (wrapper dynamic-method) System.Object.389216aa-a260-49e0-aaaa-e4e2031ad22f(intptr,intptr,int)"
这是我的配置:
Mono 8.1
Xamarin.Forms 3.3.0.893527-pre3
Xamarin.Android.Support.Design 27.0.2.1
Xamarin.Android.Support.v7.AppCompat 27.0.2.1
Xamarin.Android.Support.v4 27.0.2.1
Xamarin.Android.Support.v7.CardView 27.0.2.1
Xamarin.Android.Support.v7.MediaRouter 27.0.2.1
Xamarin.GooglePlayServices.Location 60.1142.1
Xamarin.GooglePlayServices.Maps 60.1142.1
Xamarin.Essentials 0.10.0-preview
请问您有办法解决此问题吗?
致谢
答案 0 :(得分:2)
您现在可能已经解决了您的问题,但只是将此问题留给了其他遇到此问题的人。
由于Jason的问题,它使我为列表视图逻辑清理了对可绑定项源的操纵。我做了很多.Clear()和Add,我不需要做。我减少了这些数量,这为我解决了这个问题。因此,我将研究您如何将ItemSource用于列表视图。
答案 1 :(得分:0)
我在ListView
中使用 TabbedPage
来面对这个问题,因此在更改标签时,我将ItemSource
中的Listview
重置了,解决了我的问题< / p>
protected void OnCurrentPageChanged()
{
if (Children != null && CurrentPage != null)
{
list1.ItemsSource = null;
list2.ItemsSource = null;
list3.ItemsSource = null;
SelectedTabIndex = Children.IndexOf(this.CurrentPage);
if (SelectedTabIndex == 0)
list1.ItemsSource = TimeTableListData;
if (SelectedTabIndex == 1)
list2.ItemsSource = TimeTableListData;
if (SelectedTabIndex == 2)
list3.ItemsSource = TimeTableListData;
}
}