Как решить исключение Xamarin.Forms.Platform.Android.ListViewAdapter.IsEnabled? - PullRequest
0 голосов
/ 12 октября 2018

У меня есть список с выбранными элементами некоторых пользователей.Мой CustumCellViewTemplate имеет элемент управления «unselect», который удаляет ячейку из списка.Когда список полностью заполнен элементами, работает элемент управления «отменить выбор», но когда я хочу удалить последний элемент или если последний элемент появляется в 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

У вас есть идеи, как решить эту проблему, пожалуйста?

С уважением

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Я тоже столкнулся с этим с ListView в TabbedPage, поэтому при смене вкладок я сбрасывал ItemSource из Listview, решил мою проблему

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;
    }
} 
0 голосов
/ 19 апреля 2019

Возможно, вы уже решили свою проблему, но просто оставили это здесь для других людей, которые сталкиваются с этим.

Благодаря вопросу Джейсона, это привело меня к очистке моих манипуляций с источником привязываемых элементов для представления спискалогика.Я делал много .Clear () и Add, что мне не нужно было делать.Я уменьшил их количество, и это исправило проблему для меня.Поэтому я хотел бы посмотреть, как вы работаете с ItemSource для представления списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...