System.AccessViolationException未处理c#Windows Phone 8

时间:2012-12-05 14:10:09

标签: c# windows-phone windows-phone-8

我开始将Windows Phone 7应用程序移植到Windows Phone 8,并意识到我没有在ListBox中获得结果。当正常运行时,我的代码只会在我进入代码的“new ActiveItem”部分时引发异常。我确认XML已经返回并且元素是准确的,但我以前从未见过这个。有什么建议吗?

EventsListBox.ItemsSource = from activeweb in xmlItems.Descendants("meta")

select new ActiveItem
{
ActEvent = activeweb.Element("assetName").Value.Trim(),
Date = activeweb.Element("city").Value + ", " + activeweb.Element("Eventstate").Value +
Environment.NewLine +
Convert.ToDateTime(activeweb.Element("startDate").Value).ToLongDateString(),
City = activeweb.Element("city").Value,
StartTime = activeweb.Element("startTime").Value,
AssetId = activeweb.Element("assetId").Value.Trim()
};

这是ActiveItem的构造函数

public class ActiveItem

{

public string ActEvent { get; set; }

public string Date { get; set; }

public string State { get; set; }

public string City { get; set; }

public string StartTime { get; set; }

public string AssetId { get; set; }

}

以下是异常的CallStack:

  

BeActive.DLL!BeActive.MainPage.activeweb_DownloadStringCompleted.AnonymousMethod__1(System.Xml.Linq.XElement activeweb)第97行C#

2 个答案:

答案 0 :(得分:0)

您是在后台线程而不是UI线程上设置ItemsSource吗?

我建议将代码包装在此:

Deployment.Current.Dispatcher.BeginInvoke(() =>
   {
        EventsListBox.ItemsSource = from activeweb ...
    });

答案 1 :(得分:0)

因此经过多次尝试/重建后,我想我发现了这个问题。我从我的XAML中删除了列表框并添加了“LongListSelector”(因为这是ListBox的替代品)。从那里,我更改了XAML代码以表示ListBox,它都工作。在升级到Windows Phone 8编译期间,一定有问题。

感谢您的帮助!