0

WindowsPhone7アプリケーションをWindowsPhone8に移植し始めましたが、リストボックスに結果が表示されないことに気付きました。通常どおりに実行すると、コードの「新しい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

そのため、何度も試行/再構築した後、問題を見つけたと思います。XAML からリストボックスを削除し、「LongListSelector」を追加しました (これは ListBox の代わりであるため)。そこから、ListBox を表すように XAML コードを変更したところ、すべて機能しました。Windows Phone 8 コンパイルへのアップグレード中に何か問題が発生したに違いありません。

助けてくれてありがとう!

于 2012-12-07T21:49:30.783 に答える
0

UI スレッドではなく、バックグラウンド スレッドで ItemsSource を設定していますか?

コードを次のようにラップすることをお勧めします。

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