Windows Phone 8.1 中出现未指定错误的 ObservableCollection 和 UnhandledException

ObservableCollection and UnhandledException with unspecified error in Windows Phone 8.1

我有以下代码,如果我删除“Task.Delay”,它会抛出一个带有消息 "Unspecified error" 的 UnhandledException。 这个异常不是从实际代码中抛出的,也不会被任何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
}

这只会在“dataList”变得足够大时发生。

_newData 和 _oldData 未初始化(null),因此您可能需要实例化它们以查看问题是否仍然存在。

此外,您正在使用 ObservableCollection,所以我猜您将它们绑定到 UI:在将项目添加到集合之前,请确保您不在另一个线程中(使用 Dispatcher)。

原来是一个完全不相关的问题。

Flyout 替换 MenuFlyout 解决了问题。我不确定为什么。