C # - System.ArgumentOutOfRangeExceptionSpecified аргумент был вне диапазона допустимых значений - PullRequest
0 голосов
/ 28 июня 2018

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

 System.ArgumentOutOfRangeExceptionSpecified argument was out of the range of valid values. Parameter name: index

    06-27 15:22:16.838 I/MonoDroid(12406): UNHANDLED EXCEPTION:
    06-27 15:22:16.894 I/MonoDroid(12406): System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    06-27 15:22:16.894 I/MonoDroid(12406): Parameter name: index
    06-27 15:22:16.894 I/MonoDroid(12406):   at Xamarin.Forms.ListProxy.get_Item (System.Int32 index) [0x0000b] in D:\agent\_work\1\s\Xamarin.Forms.Core\ListProxy.cs:127 
    06-27 15:22:16.894 I/MonoDroid(12406):   at Xamarin.Forms.ListProxy.System.Collections.IList.get_Item (System.Int32 index) [0x00000] in D:\agent\_work\1\s\Xamarin.Forms.Core\ListProxy.cs:444 
    06-27 15:22:16.894 I/MonoDroid(12406):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetDataTemplateForPath (System.Int32 indexPath) [0x00007] in D:\agent\_work\1\s\Xamarin.Forms.Platform.Android\Renderers\ListViewAdapter.cs:331 
    06-27 15:22:16.894 I/MonoDroid(12406):   at Xamarin.Forms.Platform.Android.ListViewAdapter.GetPrototypicalCell (System.Int32 indexPath) [0x00012] in D:\agent\_work\1\s\Xamarin.Forms.Platform.Android\Renderers\ListViewAdapter.cs:355 
    06-27 15:22:16.894 I/MonoDroid(12406):   at Xamarin.Forms.Platform.Android.ListViewAdapter.IsEnabled (System.Int32 position) [0x00023] in D:\agent\_work\1\s\Xamarin.Forms.Platform.Android\Renderers\ListViewAdapter.cs:388 
    06-27 15:22:16.894 I/MonoDroid(12406):   at Android.Widget.BaseAdapter.n_IsEnabled_I (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 position) [0x00008] in <8211f1f12f9e45838d631abf63e51c79>:0 
    06-27 15:22:16.894 I/MonoDroid(12406):   at (wrapper dynamic-method) System.Object:1ea77dfa-202b-4d75-ab0a-510fd6f70323 (intptr,intptr,int)

Метод вызывается при получении предмета:

  MessagingCenter.Subscribe<ItemTaskMessage>(this, "ItemTaskMessage", async message =>
{ 
//insert the item in the right listview
};

Метод в коде позади OnItemAppearing

private async void OnItemAppearing(object sender, ItemVisibilityEventArgs args)
{
        //calculate the dimension of the lists.
     base.OnAppearing();
     try
     {
           ListViewItem.HeightRequest = ((HomePageViewModel)this.BindingContext).ItemGroups.Count * ListViewItem.RowHeight + 10;
           ListViewItem2.HeightRequest = (((HomePageViewModel)this.BindingContext).Item2Groups.Count * ListViewItem2.RowHeight) + 10;
           ListViewItem3.HeightRequest = (((HomePageViewModel)this.BindingContext).Item3Groups.Count * ListViewItem3.RowHeight)+ 10;
      }
       catch (Exception) { }
}

Версия Xamarin.Forms 2.5.1.527436

Заранее спасибо

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