1

私のモデルには、コードビハインドから更新する大きなデータオブジェクトが含まれています(現在、これは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;

マルチスレッドコードはどこに行くべきですか?それはビューモデルまたは私の値コンバーターの一部である必要がありますか?

4

2 に答える 2

1

IsAsync="True"バインディングを確認し、チェックしてくださいPriorityBinding

ここでは、PriorityBindingの詳細を確認できます

于 2012-10-26T12:17:06.517 に答える
1

ビューモデルと値コンバーターのどちらかを選択できるので、ビューモデルに投票します。ただし、データストアとのやり取りを担当するリポジトリまたはクライアント側サービスでの長時間実行操作を確認したいと思います。

于 2012-10-26T12:19:04.937 に答える