シンプルなWP8アプリケーションを構築しています。ListPicker
別のクラスのメンバーであるコレクションでコントロールを更新しようとしています。このクラスは、非同期呼び出しでこのデータを取得します。を更新する MainPage でイベントをトリガーする応答が受信されたときListPicker
。
public void coinUtil_ReceivedPriceEvent(object sender, EventArgs e)
{
PopulateListPicker();
}
public void PopulateListPicker()
{
try
{
foreach (KeyValuePair<string, double> item in coinUtil.cointPriceList)
{
listPickerCurrencies.Items.Add(item.Key);
}
}
catch (UnauthorizedAccessException ex)
{
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
次の例外が発生します。
タイプ 'System.UnauthorizedAccessException' の初回例外が System.Windows.ni.dll で発生しました
タイプ 'System.UnauthorizedAccessException' の例外が System.Windows.ni.dll で発生し、マネージド/ネイティブ境界の前に処理されませんでした System.UnauthorizedAccessException: 無効なクロススレッド アクセスです。MS.Internal.XcpImports.CheckThread() で System.Windows.DependencyObject.GetValueInternal(DependencyProperty dp) で System.Windows.FrameworkElement.GetValueInternal(DependencyProperty dp) で System.Windows.Controls.ItemsControl.get_Items() で BitCoinTail.MainPage .PopulateListPicker()
奇妙なことに、このクラスの別のメンバーに単純な文字列でアクセスしようとすると、正常に動作します。私はWP7で少し開発していましたが、この例外が発生したことを思い出しません. 誰かが私が間違っていることを見ることができますか?