我的模型包含我从代码隐藏更新的大型数据对象(目前这发生在 UI 线程上,但我打算稍后在工作人员中执行此操作)。我的一个窗口具有此模型的视图模型,并使用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;
多线程代码应该去哪里?它应该是视图模型的一部分还是我的价值转换器?