首页 > 解决方案 > MVVM + WPF - 为具有多个视图的 ViewModel 设计

问题描述

我开发在各种信息亭上运行的 .NET/Winforms 应用程序。这些应用程序通常是全屏和触摸控制的。最近我想使用 WPF 技术和 MVVM 设计模式。

这些应用程序的可行设计是我有一个可以在其上切换屏幕(UserControls)的 MainForm(Window)。因此,您只有一个“当前”屏幕,其中包含上一个、下一个等按钮(就像一个向导)。

大多数应用程序都有非常相似的逻辑。他们例如。需要从用户(一个屏幕)获取 OrderNumber(PIN,任何文本..),通过卡处理支付(第二个屏幕),... 跨应用程序的不同之处在于 GUI:图像、字体、颜色、显示器分辨率、按钮位置, ...

我的想法是编写典型的 ViewModel 并将它们放在公共库中。然后,特定的应用程序将为这些 ViewModel 提供它们的视图。然后,每个 ViewModel 将在整个应用程序生命周期中绑定到一个特定的 View。

例子:

库 Common.dll

应用1:

应用 2:

由于逻辑和 GUI 分离,MVVM 在我看来是实现我的要求的正确方法。

我的问题是如何在 WPF 中制作这个,使用什么,在哪里激励自己。我更喜欢没有 3rd 方 MVVM 工具包的简单解决方案(如果合理且可能的话)。

一些子问题/想法:

谢谢你

标签: .netwpfmvvmkiosk

解决方案


我只见过每个 ViewModel 的一个视图 - 所以如果有另一种方法可以做到这一点,我会很感兴趣。

我会为每个视图使用一个 ViewModel,但每个 ViewModel 都继承自公共 ViewModel。

因此 Common.dll 将包含 ScreenPayByCardView,而应用程序 1 将包含从 ScreenPayByCardView 继承的 App1ScreenPayByCardView。可能这个 ViewModel 甚至可能不包含它自己的逻辑。


推荐阅读