所以我有一个使用 MVVM 模式(Caliburn.Micro)的 WPF 应用程序。我得到了视图和视图模型,基本上缺少的是数据。数据将从 WCF 服务、本地存储或内存/缓存“按需”检索 - 原因是允许离线模式并避免不必要的服务器通信。另一个要求是异步检索数据,因此 UI 线程不会被阻塞。
所以我正在考虑创建某种视图模型用来请求数据的“AssetManager”:
_someAssetManager.GetSomeSpecificAsset(assetId, OnGetSomeSpecificAssetCompleted)
请注意,这是一个异步调用。我遇到了一些不同的问题。如果不同的视图模型(大致)同时请求相同的资产,我们如何确保我们不做不必要的工作并且它们都获得了我们可以绑定的相同对象?
不确定我的方法是否正确。我一直在浏览 Reactive Framework - 但我不知道如何在这种情况下使用它。关于我可以使用的框架/技术/模式的任何建议?这似乎是一个相当普遍的情况。