locked
DataGridへの表示 RRS feed

  • 質問

  • はじめまして

    SilverlightアプリケーションをC#で開発をしております。

    DataGridにTCP通信で受け取ったCSV形式のデータを表示しようと思っております。


    表示させる際に、

    _logData.ItemsSource = ObservableCollection<T>で作ったリスト

    としているのですが、下記のエラーが出てしまい表示出来ていない状態です。

    '_logData.ItemsSource' は、型 'System.UnauthorizedAccessException' の例外をスローしました。

    base {System.Exception} = {System.UnauthorizedAccessException: 無効なスレッド間アクセスです。
       場所 MS.Internal.XcpImports.CheckThread()
       場所 System.Windows.DependencyObject.GetValueInternal(DependencyProperty dp)
       場所 System.Windows.FrameworkElement.GetValueInternal(DependencyProperty dp)
     ...


    どのようにしたらデータを表示できる様になるのか、

    自分では解決できなくなってしまったので、

    すみませんが、ご教授お願いいたします。

    2009年11月11日 2:42

すべての返信

  • エラーメッセージの通りです。
    Windows FormやWPFでもそうですが、コントロールには、特定のスレッドからのアクセスしか
    出来ないように作られています。

    おそらくCSVを受け取ったあとのコールバックでエラーの出るコードを書いているのだと思いますが
    コールバックが実行されるのは、UIスレッド上とは限りません。
    DispatcherのBeginInvokeを使って、UIスレッドで操作を行う必要があります。
    かずき Blog:http://blogs.wankuma.com/kazuki/
    2009年11月11日 4:27
  • Dispatcher.BeginInvoke()で無事実装することができました。
    本当にありがとうございました
    2009年11月11日 5:30