Wpf Windows Phone 8.1中的ObservableCollection和UnhandledException存在未指定错误

Wpf Windows Phone 8.1中的ObservableCollection和UnhandledException存在未指定错误,wpf,windows-phone-8.1,winrt-async,Wpf,Windows Phone 8.1,Winrt Async,我有下面的代码,如果我删除“Task.Delay”,它会抛出一个未处理的异常,并显示消息“Unspecified error”。 此异常不会从实际代码中抛出,也不会被任何try-catch捕获 ViewModel Code: ObservableCollection<Data> _newData; ObservableCollection<Data> _oldData; List<Data> dataList = await Task.Run(() =&g

我有下面的代码,如果我删除“Task.Delay”,它会抛出一个未处理的异常,并显示消息“Unspecified error”。 此异常不会从实际代码中抛出,也不会被任何try-catch捕获

ViewModel Code:

ObservableCollection<Data> _newData;
ObservableCollection<Data> _oldData;

List<Data> dataList = await Task.Run(() => GetData());

foreach(var dataItem in dataList)
{
    if(dataItem.Type == DataType.New)
        _newData.Add(dataItem);
    else        
        _oldData.Add(dataItem);

    await Task.Delay(1); // Comment out and code fails
}
ViewModel代码:
可观测的收集——新数据;
可观测的收集数据;
List dataList=wait Task.Run(()=>GetData());
foreach(数据列表中的var数据项)
{
if(dataItem.Type==DataType.New)
_newData.Add(数据项);
其他的
_添加(数据项);
等待任务。延迟(1);//注释掉,代码失败
}

只有当“数据列表”变得足够大时才会发生这种情况。

\u新数据和旧数据未初始化(null),因此您可能需要实例化它们以查看是否仍然存在问题


另外,您正在使用ObservableCollection,因此我想您应该在UI上绑定它们:在向集合添加项目之前,确保您不在另一个线程中(使用Dispatcher)。

结果证明这是一个完全无关的问题


MenuFlyout
替换为
弹出按钮
解决了问题。我不确定确切的原因。

您是否初始化了旧数据和新数据收集?是的。它不是代码中的空引用错误。在try-catch-all中包装所有内容都无效或无法捕获任何内容。能否提供堆栈跟踪?这是否发生在
wpf
windows-phone-8.1
winrt async
中?未处理的异常中没有堆栈跟踪或其他信息。它发生在Windows Phone 8.1 RT中。例外情况是App.UnhandledExceptionHandler中的cougt。我的代码中没有try-catch捕获它。是否有任何事件处理程序绑定到集合?错误可能来自一个事件处理程序在添加一些新项时试图更改集合。。。