Windows Phone 8.1中带有未指定错误的ObservableCollection和UnhandledException

时间:2016-02-23 11:24:48

标签: wpf windows-phone-8.1 winrt-async

我有以下代码,如果我删除'Task.Delay',它会抛出一个UnhandledException,并显示消息“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
}

这只会在“数据列表”变得足够大时发生。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

command toggleScroller pVisible if the environment is "mobile" then mobileControlSet sScrollerId, "visible", pVisible end if end toggleScroller 替换MenuFlyout解决了这个问题。我不确定为什么。