2012-12-05 67 views
0

我開始將Windows Phone 7應用程序移植到Windows Phone 8,並意識到我沒有在ListBox中獲取結果。當我正常運行時,我的代碼只在進入代碼的「新的ActiveItem」部分時才引發異常。我證實XML正在返回並且元素是準確的,但我從來沒有見過這種情況。有什麼建議麼?System.AccessViolationException未處理c#Windows Phone 8

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; } 

} 

構造這裏是異常的調用堆棧:

BeActive.DLL BeActive.MainPage.activeweb_DownloadStringCompleted.AnonymousMethod__1(的System.Xml。 Linq.XElement activeweb)Line 97 C#

+0

你的ActiveItem類是否有默認的構造函數? – kindasimple

+0

你可以添加你的異常的完整調用堆棧嗎? –

+0

這裏是我如何構建ActiveItem ' 公共類ActiveItem { 公共字符串ActEvent {獲得;組; } public string Date {get;組; } public string State {get;組; } public string City {get;組; } public string StartTime {get;組; } public string AssetId {get;組; } } ' – HarryM

回答

0

這麼多的嘗試後/重建,我想我找到了問題。我從我的XAML中刪除了列表框,並添加了「LongListSelector」(因爲這是ListBox的替代品)。從那裏,我改變了XAML代碼來表示ListBox,並且它一切正常。在升級到Windows Phone 8編譯過程中一定出了問題。

感謝您的幫助!

0

是y ou在後臺線程而不是UI線程上設置ItemsSource?

我建議在這個包裝代碼:

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

我只是試圖包裝代碼,並收到相同的錯誤。 – HarryM