我的应用程序必须支持不同的UI(Win Forms和WPF)。这意味着我必须封装业务逻辑。 你会怎么做?
E.g。带MVVM的WPF:
1)我应该在我的模型类(例如汽车,门,......)和视图模型之间引入一个层吗?例如,通过控件类,管理器类或服务类??
2)或者模型类(例如汽车,车门......)本身是否包含逻辑?
答案 0 :(得分:0)
模型类通常用于与您拥有的任何UI层和业务逻辑之间传输数据。所以他们通常不应该包含任何逻辑。
我还没有尝试过支持WPF和winforms(并且不能老实地提出为什么这是必要的),但是AFAICT winforms根本不支持MVVM。是的,你可以做绑定(有点),但你不能,例如,将ICommands绑定到按钮。
因此,我建议使用ViewModel作为UI和业务逻辑之间的桥梁。然后,在应用程序之间共享业务逻辑类。您的视图模型应该非常薄,并且相对容易创建和维护。类似的桥可能在winforms项目中很有用,或者只是简单地在代码隐藏中重新创建视图模型代码。