wpf - ViewModel 是否应该被不同的 View 重用?如果有,什么时候?

标签 wpf mvvm

从我读到的内容来看,每个 View 都有自己对应的 ViewModel 似乎被认为是 MVVM 中的最佳实践,这是有道理的,因为 ViewModel 应该是 View 的模型。通常,似乎不鼓励不同 View 重用 ViewModel。总是这样吗?如果不是,确定是否应该以这种方式重用 ViewModel 的一般准则是什么?

我能想到的一种情况是,当两个 View 使用来自模型的完全相同的数据而 View 本身只是以不同的方式表示数据时,重用具有不同 View 的 View 模型可能会令人满意。如果 View 可以自己以不同的方式处理表示相同的数据,那么一个 ViewModel 可能能够有效地为每个 View 提供服务。

最佳答案

我们制定规则的原因是为了让您在打破规则之前先三思。

也就是说:对两个相似的 View 使用相同的 ViewModel 并没有错。您确实需要非常小心,以免您的两个 View 出现分歧,从而使 View 模型试图做两种不同的事情。

这就是为什么建议每个 View 有一个 View 模型的原因。尽管这可能会导致重复,但从长远来看,它会使维护 View 更容易。

至于重复,具有共享基类的 View 模型类没有任何问题。

关于wpf - ViewModel 是否应该被不同的 View 重用?如果有,什么时候?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710268/

相关文章:

c# - 如何将youtube视频嵌入WPF MediaElement并保存视频?

.net - WPF无响应的UI问题

同一站点上多用户登录的 C# 应用程序

c# - 通过 MVVM 绑定(bind) MenuItem 的命令

c# - MVVM 绑定(bind)到属性的奇怪行为

c# - 从 UWP 中的 ViewModel B 更新 ViewModel A 的属性

c# - 发生更改时,List<string> 不会更新 UI

wpf - MVVM 本地化 - View 中的本地化资源与 ViewModel 中的资源?

c# - 如何从 ViewModel(MVVM) 调用 UI Controls 方法?

c# - MVPVM - 使用 Interface 或 Presenter 的事件处理