Xamarin应用程序在ObservableCollection.Add上崩溃?

时间:2018-01-07 02:26:56

标签: xamarin xamarin.forms xamarin.ios

我有一个在iOS模拟器上运行的Xamarin.Forms应用程序,只要它遇到代码就会停止,该代码会将新成员添加到可观察集合中,该集合是CarouselView的模板源。奇怪的是,它不会立即发生,但只有当我在用户接近旋转木马末端时向集合中添加更多项目时才会发生。我无法在try catch块中捕获错误。在调试模式下,当我停在有问题的行并进入或跳过时,应用程序就会关闭并返回主屏幕。我最近更新了我的软件包,可能还有一些问题吗?

代码如下:

private ObservableCollection<ResultsScroller> mySource;
public void PopulateResultsPages(List<NominalResult> resultList)
{
  foreach (var nr in resultList)
  {
    var template = new ResultsScroller();
    template.LoadData(nr);
    try
    {
       mySource.Add(template);    // <----app quits here
    }
    catch (System.Exception e)
    {
      System.Diagnostics.Debug.WriteLine(e.Message);
    }
  }
  lastPosition = mySource.Count - 1;
}

2 个答案:

答案 0 :(得分:1)

在构造函数中初始化observablecollevtion mySource,如下所示

mySource = new ObservableCollection<ResultsScroller>();

之后添加项目。

答案 1 :(得分:0)

目前,您必须以某种方式以编程方式在添加项目之前显示ListView。如果ListView位于不可见的选项卡内,请通过设置CurrentPage属性来显示它。如果它在MasterDetailPage中,您可以尝试通过切换IsPresented属性来显示它。

即将推出的XF更新应解决此问题: - https://github.com/xamarin/Xamarin.Forms/issues/1542 - https://github.com/xamarin/Xamarin.Forms/issues/1927