WPFのデータバインドとマルチスレッド [プログラム]
WPFのプロパティにバインドしているプロパティを,別スレッドから弄ってみた。PropertyChangedイベントは別スレッド側で実行。結果は,
- 通常のバインド:プロパティの取得は,UIスレッドで行われた
- ICommand.CanExecuteChanged:イベントの実行は,別スレッド側で行われるために例外発生
でした。 なので,CanExecuteChangedイベントの呼び出し時のみ,Dispatcher経由が必要なようです。 System.Windows.Application.Current.Dispatcuer経由,ということになりそうです。
ちなみに,Windows Formsでは別スレッド側でプロパティ取得が行われます。 よって,PropertyChangedイベントをUIスレッドで実行する必要があります。
2009-04-03 13:14
コメント(0)
トラックバック(0)
コメント 0