0

我开始将我的 Windows Phone 7 应用程序移植到 Windows Phone 8 并意识到我没有在我的 ListBox 中获得结果。正常运行时,我的代码仅在我进入代码的“新 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#

4

2 回答 2

0

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

我建议将您的代码包装在此:

Deployment.Current.Dispatcher.BeginInvoke(() =>
   {
        EventsListBox.ItemsSource = from activeweb ...
    });
于 2012-12-06T21:16:37.007 回答
0

因此,经过多次尝试/重建,我想我找到了问题所在。我从我的 XAML 中删除了列表框并添加了“LongListSelector”(因为这是 ListBox 的替代品)。从那里,我更改了 XAML 代码以表示 ListBox,并且一切正常。在升级到 Windows Phone 8 编译过程中一定出了问题。

谢谢您的帮助!

于 2012-12-07T21:49:30.783 回答