将 Win Forms 应用程序重构为 MVVP 模式——未来可能的 WPF 版本

rau*_*and 5 c# wpf mvvm winforms

我最近开始研究需要一些改进和重组的 Win Forms 应用程序。将来可能会完成应用程序的 WPF 版本,我正在考虑将 Win Forms 应用程序重组为 MVVM 模式。目的是在开发 WPF 时,我只需专注于创建 WPF 视图并重用以前版本的代码。
我查看了一些关于使用 MVVP 模式开发 Win Forms 应用程序的帖子,似乎确实可以使用该模式开发 Win Forms 应用程序。
我想知道这种方法是否可取,如果将现有的 Win Forms 应用程序重构为 MVVM 模式会减轻开发 WPF 版本时的工作负载。

Vla*_*lov 4

在我看来这不是一个好主意。因为 MVVM 在 WPF 中如此出色的一个真正重要原因是 WPF 绑定基础设施。WinForms 没有这样的能力,绑定支持要低得多。这就是 WinForms 使用 MVP 模式的原因,其中 Presenter 负责向视图提供数据。您可以尝试编写纯粹的 MVVM 模型,但随后您必须在视图中编写大量丑陋的代码才能绑定到模型并更新它们。我建议坚持使用 MVP,因为这对于 WinForms 来说是一个非常好的方法,它创建了结构良好的组件,然后很容易在 WPF 和 MVVM 中重新创建相同的功能。