在后台加载模型数据

时间:2011-04-26 10:26:09

标签: mvvm prism

我正在开发一个Prism应用程序,我需要在应用程序加载后在后台加载模型中的一些数据。我有一个隐藏的单独视图,它将通过视图模型显示此数据。我不想增加应用程序加载时间,也不想增加视图加载时间。我能想到的唯一解决方案是引发Shell Loaded事件并让视图模型或模型订阅它。

这是一种好方法还是有更好的方法?

另外,我不确定是否应该在Shell LoadedRun的{​​{1}}中提出Bootstrapper事件。如何将路由命令(例如:已加载)链接到Shell ViewModel

2 个答案:

答案 0 :(得分:1)

我尽量避免在引导程序中处理这些类型的事件。因此,将shell视图的Loaded事件附加到shell视图模型是一个很好的方法。在引导程序中实际引发此事件的唯一原因是,如果您需要StartupEventArgs(我有时会这样做)。

有很多方法可以处理加载的事件。

  • 100%MVVM使用附加属性将事件直接传递给ICommand或方法。例如:how to call a window's Loaded event in WPF MVVM?
  • 只需处理后面代码中的Loaded事件,然后从那里调用VM中的Loaded方法/命令。这是一个简单易用的入门解决方案。

答案 1 :(得分:0)

为了减少加载时间,您应该尽量避免在UI线程上投入太多工作。您可能想要调查TPL或一个名为ReactiveUI的漂亮框架,它提供了一种非常方便的机制来异步加载内容。