私のモデルには、コードビハインドから更新する大きなデータオブジェクトが含まれています(現在、これはUIスレッドで発生しますが、後でワーカーで実行する予定です)。私のウィンドウの1つには、このモデルのビューモデルがあり、を使用してこのデータオブジェクトを出力しますIValueConverter
。問題は、この変換に数秒かかることです。したがって、この更新されたデータを非同期でフェッチするためのウィンドウが必要です。これはどのように行うことができますか?
MyControl.xaml:
<UserControl.DataContext>
<local:DataViewModel x:Name="dataViewModel"/>
</UserControl.DataContext>
次にコードで:
// This triggers my value converter and blocks the UI for several seconds!
dataViewModel.HeavyObject = data;
マルチスレッドコードはどこに行くべきですか?それはビューモデルまたは私の値コンバーターの一部である必要がありますか?