• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# データバインディングされたプロパティの更新)

C#データバインディングされたプロパティの更新

このQ&Aのポイント
  • C#のプロパティにバインディングされたラベルの更新方法
  • C#のINotifyPropertyChangedを実装したプロパティをバインディングしてラベルに値を表示する方法
  • C#のプロパティの値を更新する際に発生する例外とその解決方法

質問者が選んだベストアンサー

  • ベストアンサー
  • amyaad
  • ベストアンサー率100% (8/8)
回答No.1

UIを更新できるのはUIスレッドであり、別スレッドから更新しようとすると、InvalidOperationExceptionが発生します。参考URLそのままなのですが、 Update()で、 var syncContext = SynchronizationContext.Current;としておき、 ContinueWith(task => { Data.MyProperty = task.Result; }); の部分を .ContinueWith(task => { Data.MyProperty = task.Result; },TaskScheduler.FromCurrentSynchronizationContext()); とかすればよいです。 http://ufcpp.wordpress.com/2012/04/26/%E9%9D%9E%E5%90%8C%E6%9C%9F%E5%87%A6%E7%90%86%E3%81%A8%E3%83%87%E3%82%A3%E3%82%B9%E3%83%91%E3%83%83%E3%83%81%E3%83%A3%E3%83%BC/

ctmogawa
質問者

お礼

ありがとうございます。 無事に解決できました。 自分ではGUIを直接変更していないからとGUIスレッドの考えが無くなっていました。 InvalidOperationExceptionエラーなのだからもっとよく考えれば良かったです。

関連するQ&A