我正在重写一个基于 Prism 的应用程序。它基于 WAF,并使用实体框架通过工作单元/存储库模式访问数据。
我打算使用事件聚合器来通知我的视图模型何时有新的工作单元可用(例如,在保存之后)。然后,他们可以用来自新工作单元的新等价物替换他们正在呈现的模型对象。
1.) 这是一个合理的想法吗?我还能如何通知我的视图模型它们正在显示过时的信息?
我只想让可见的视图模型重新查询数据库。当前未显示的 ViewModel 可以延迟刷新,直到它们显示(我打算使用 INavigationAware 界面执行此操作)。
2.) 同样,这是一种合理的方式吗?如何区分当前对用户可见的视图模型和不可见的视图模型?
作为 2.) 的替代解决方案,我正在考虑仅在需要时创建视图,并在它们被隐藏时立即销毁它们。这将解决“哪些视图模型可见”的问题,但似乎非常昂贵。
3.) Prism 是否打算以这种方式使用?