.net - 屏幕同步 - 事件聚合器 VS 缓存 ViewModel 引用

标签 .net data-binding mvvm eventaggregator

我做了一些功课,找不到任何关于何时使用每种方法的最佳实践的文章。

只是为了澄清:
使用事件聚合器模式时 :每个屏幕都有自己的viewmodel引用,viewmodel使用eventtaggregator发布更改,稍后观察者使用它来同步他们的状态。

缓存 ViewModel :每个屏幕都有viewmodel的保存引用,绑定(bind)到view model属性的控件是同步的,
因为应用程序中的每个屏幕都具有相同的 View 模型引用(从缓存中获取它们),所以由于数据绑定(bind),所有屏幕都是同步的。

何时使用每种方法?使用它们每个的优点是什么?

最佳答案

好吧,正如我所见,事件聚合器方法更具可扩展性,并提供了更加解耦的设计。

当可伸缩性不是问题时,单个 VM(或多个 VM 缓存)方法很好,因为随着添加越来越多的 View ,VM 可能会增长到惊人的比例。

总之,事件聚合器方法是经久耐用的系统的“正确”方法,但如果您正在为特定的有限目的和生命周期构建内部工具,则可以使用更简单的方法。

关于.net - 屏幕同步 - 事件聚合器 VS 缓存 ViewModel 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965695/

相关文章:

c# - value.(entityname) 取的值是多少?

c# - naudio WaveOut 没有播放 iSampleProvider 提供的所有数据

javascript - 如何格式化 telerik :GridBoundColumn date field that is using a client-side bind?

c# - WPF:在没有清除/添加的情况下替换数据绑定(bind)集合内容

.net - MVVM 中的等待光标

c# - 在运行时将 DataTable 绑定(bind)到 WPF MVVM 中的 Datagrid

.net - 如何将托管的 .NET 程序集从内存中保存为 EXE/DLL 文件

.net - 使用 Microsoft ODBC for Oracle 连接到 Oracle 10g 数据库

c# - Google Drive API 上传/创建文件 (.NET)

c# - 异步填充强类型数据集