バックグラウンドワーカーのDoWork
メソッドでTreeView
コントロールのヘッダープロパティにアクセスしようとしています。WPF BackgroundworkerのDoWorkメソッドに渡す
私は次のことを試してみました:
var worker = new BackgroundWorker();
worker.DoWork += DoWork;
worker.RunWorkerAsync(MyTreeView);
private void DoWork(object sender, DoWorkEventArgs e)
{
var x = (e.Argument as TreeView);
var item1 = x.Items[0] as TreeViewItem;
//error here..
var headerItem1 = item1.Header;
}
スローされるエラーは、私がアクセスできるようにするプロパティが別のスレッド(私の場合はUIスレッド)によって所有されていることを述べています。
この問題はこれまでのところTreeView
コントロールでのみ発生しました。合流し、Labels
やTextBlocks
のような複雑ではないコントロールにアクセスするとうまくいきました。
すべての回答ありがとうございます。
TreeViewで、LabelまたはTextBlockコントロールよりも多くのデータを処理している可能性があります。可能な複製[https://stackoverflow.com/q/9732709/6026377](https://stackoverflow.com/q/9732709/6026377) –